summaryrefslogtreecommitdiffstats
path: root/progs/glsl/CH11-bumpmap.vert.txt
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-01-16 14:55:43 -0700
committerBrian <[email protected]>2007-01-16 14:55:43 -0700
commitf44ba11815fecedbbcd9eaaa9c43d2fd6537b88e (patch)
treefd7c232f8955ccf41870fd944648ab61fe15e8f2 /progs/glsl/CH11-bumpmap.vert.txt
parent9b5dc1358a82949aaf9a25abb18c5df64d5f01a1 (diff)
Added toyball and bumpmap tests using shaders from the OpenGL Shading Language (orange) book.
Diffstat (limited to 'progs/glsl/CH11-bumpmap.vert.txt')
-rw-r--r--progs/glsl/CH11-bumpmap.vert.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/progs/glsl/CH11-bumpmap.vert.txt b/progs/glsl/CH11-bumpmap.vert.txt
new file mode 100644
index 00000000000..d3d19f62ac3
--- /dev/null
+++ b/progs/glsl/CH11-bumpmap.vert.txt
@@ -0,0 +1,38 @@
+//
+// Vertex shader for procedural bumps
+//
+// Authors: Randi Rost, John Kessenich
+//
+// Copyright (c) 2002-2006 3Dlabs Inc. Ltd.
+//
+// See 3Dlabs-License.txt for license information
+//
+
+varying vec3 LightDir;
+varying vec3 EyeDir;
+
+uniform vec3 LightPosition;
+
+attribute vec3 Tangent;
+
+void main()
+{
+ EyeDir = vec3(gl_ModelViewMatrix * gl_Vertex);
+ gl_Position = ftransform();
+ gl_TexCoord[0] = gl_MultiTexCoord0;
+
+ vec3 n = normalize(gl_NormalMatrix * gl_Normal);
+ vec3 t = normalize(gl_NormalMatrix * Tangent);
+ vec3 b = cross(n, t);
+
+ vec3 v;
+ v.x = dot(LightPosition, t);
+ v.y = dot(LightPosition, b);
+ v.z = dot(LightPosition, n);
+ LightDir = normalize(v);
+
+ v.x = dot(EyeDir, t);
+ v.y = dot(EyeDir, b);
+ v.z = dot(EyeDir, n);
+ EyeDir = normalize(v);
+}