2
attribute vec3 tangent;
4
const vec3 tangent = vec3(1.0, 0.0, 0.0);
7
varying vec2 vTexCoord;
8
varying vec3 vEyeVector; // These are all in tangent space
9
varying vec3 vLight0Vector;
10
varying vec3 vLight1Vector;
14
vTexCoord = gl_MultiTexCoord0.st;
15
gl_Position = ftransform();
17
// Build tangent basis
18
vec3 n = normalize(gl_NormalMatrix * gl_Normal);
19
vec3 t = normalize(gl_NormalMatrix * tangent);
21
mat3 TBN = mat3(t, b, n);
23
vec3 eyeVector = -vec3(gl_ModelViewMatrix * gl_Vertex);
24
vEyeVector = eyeVector * TBN;
27
vec3 light0Vector = gl_LightSource[0].position.xyz + eyeVector;
28
vLight0Vector = light0Vector * TBN;
30
vec3 light1Vector = gl_LightSource[1].position.xyz + eyeVector;
31
vLight1Vector = light1Vector * TBN;