summaryrefslogtreecommitdiffstats
path: root/src/demos/hdr/shaders/cg/object_vp.cg
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2009-06-15 23:12:27 +0000
committerKenneth Russel <[email protected]>2009-06-15 23:12:27 +0000
commit41cd6c47b23975098cd155517790e018670785e7 (patch)
tree247333528ad674d427ba96b1e05810f7961d609e /src/demos/hdr/shaders/cg/object_vp.cg
parent935d2596c13371bb745d921dbcb9f05b0c11a010 (diff)
Copied JOGL_2_SANDBOX r350 on to trunk; JOGL_2_SANDBOX branch is now closed
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@352 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
Diffstat (limited to 'src/demos/hdr/shaders/cg/object_vp.cg')
-rwxr-xr-xsrc/demos/hdr/shaders/cg/object_vp.cg43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/demos/hdr/shaders/cg/object_vp.cg b/src/demos/hdr/shaders/cg/object_vp.cg
new file mode 100755
index 0000000..895dc28
--- /dev/null
+++ b/src/demos/hdr/shaders/cg/object_vp.cg
@@ -0,0 +1,43 @@
+#include "hdr.cg"
+
+// application to vertex shader
+struct a2v
+{
+ float4 Position : POSITION;
+ float4 Normal : NORMAL;
+};
+
+// vertex shader to fragment shader
+struct v2f
+{
+ float4 HPosition : POSITION;
+ float4 P : TEXCOORD0; // position
+ float3 N : TEXCOORD1; // normal
+ float3 I : TEXCOORD2; // incident vector
+};
+
+v2f main(a2v In,
+ uniform float4x4 modelViewProj,
+ uniform float4x4 model,
+ uniform float3 eyePos
+ )
+{
+ v2f Out;
+
+ // transform position
+ float4 P = mul(model, In.Position);
+
+ // transform normal
+ float3 N = transform_dir(model, In.Normal.xyz);
+ N = normalize(N);
+
+ // calculate incident vector
+ float3 I = P.xyz - eyePos;
+
+ Out.P = P;
+ Out.N = N;
+ Out.I = I;
+
+ Out.HPosition = mul(modelViewProj, In.Position);
+ return Out;
+}