132001f49Smrg// 232001f49Smrg// Vertex shader for procedural bumps 332001f49Smrg// 432001f49Smrg// Authors: Randi Rost, John Kessenich 532001f49Smrg// 632001f49Smrg// Copyright (c) 2002-2006 3Dlabs Inc. Ltd. 732001f49Smrg// 832001f49Smrg// See 3Dlabs-License.txt for license information 932001f49Smrg// 1032001f49Smrg 1132001f49Smrgvarying vec3 LightDir; 1232001f49Smrgvarying vec3 EyeDir; 1332001f49Smrg 1432001f49Smrguniform vec3 LightPosition; 1532001f49Smrg 1632001f49Smrgattribute vec3 Tangent; 1732001f49Smrg 1832001f49Smrgvoid main() 1932001f49Smrg{ 2032001f49Smrg EyeDir = vec3(gl_ModelViewMatrix * gl_Vertex); 2132001f49Smrg gl_Position = ftransform(); 2232001f49Smrg gl_TexCoord[0] = gl_MultiTexCoord0; 2332001f49Smrg 2432001f49Smrg vec3 n = normalize(gl_NormalMatrix * gl_Normal); 2532001f49Smrg vec3 t = normalize(gl_NormalMatrix * Tangent); 2632001f49Smrg vec3 b = cross(n, t); 2732001f49Smrg 2832001f49Smrg vec3 v; 2932001f49Smrg v.x = dot(LightPosition, t); 3032001f49Smrg v.y = dot(LightPosition, b); 3132001f49Smrg v.z = dot(LightPosition, n); 3232001f49Smrg LightDir = normalize(v); 3332001f49Smrg 3432001f49Smrg v.x = dot(EyeDir, t); 3532001f49Smrg v.y = dot(EyeDir, b); 3632001f49Smrg v.z = dot(EyeDir, n); 3732001f49Smrg EyeDir = normalize(v); 3832001f49Smrg} 39