intravenous

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 }