annotate sdr/vein.v.glsl @ 4:c6a6a64df6de
normalmap
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Sun, 22 Apr 2012 05:20:03 +0300 |
parents |
94d4c60af435 |
children |
2723dc026c4f |
rev |
line source |
nuclear@3
|
1 attribute vec3 attr_tang;
|
nuclear@3
|
2
|
nuclear@3
|
3 varying vec3 vpos, vnorm;
|
nuclear@3
|
4 varying vec3 ldir, vdir;
|
nuclear@3
|
5
|
nuclear@3
|
6 void main()
|
nuclear@3
|
7 {
|
nuclear@3
|
8 gl_Position = ftransform();
|
nuclear@3
|
9 vpos = (gl_ModelViewMatrix * gl_Vertex).xyz;
|
nuclear@3
|
10 vec3 norm = gl_NormalMatrix * gl_Normal;
|
nuclear@3
|
11 vec3 tang = gl_NormalMatrix * attr_tang;
|
nuclear@3
|
12
|
nuclear@3
|
13 vec3 n = normalize(norm);
|
nuclear@3
|
14 vec3 t = normalize(tang);
|
nuclear@3
|
15 vec3 b = cross(n, t);
|
nuclear@3
|
16
|
nuclear@3
|
17 mat3 tbn_mat = mat3(
|
nuclear@3
|
18 t.x, b.x, n.x,
|
nuclear@3
|
19 t.y, b.y, n.y,
|
nuclear@3
|
20 t.z, b.z, n.z);
|
nuclear@3
|
21 ldir = tbn_mat * (gl_LightSource[0].position.xyz - vpos);
|
nuclear@3
|
22 vdir = tbn_mat * -vpos;
|
nuclear@3
|
23 vnorm = n;
|
nuclear@3
|
24
|
nuclear@4
|
25 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
|
nuclear@3
|
26 }
|