diff options
author | Brian <[email protected]> | 2007-01-16 14:55:43 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-01-16 14:55:43 -0700 |
commit | f44ba11815fecedbbcd9eaaa9c43d2fd6537b88e (patch) | |
tree | fd7c232f8955ccf41870fd944648ab61fe15e8f2 /progs/glsl/CH11-bumpmap.vert.txt | |
parent | 9b5dc1358a82949aaf9a25abb18c5df64d5f01a1 (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.txt | 38 |
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); +} |