intravenous
annotate sdr/vein.v.glsl @ 3:94d4c60af435
some progress
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 22 Apr 2012 03:35:18 +0300 |
parents | |
children | c6a6a64df6de |
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@3 | 25 gl_TexCoord[0] = gl_MultiTexCoord0; |
nuclear@3 | 26 } |