intravenous
annotate sdr/vein.v.glsl @ 6:2723dc026c4f
collision detection
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 23 Apr 2012 21:43:10 +0300 |
parents | c6a6a64df6de |
children |
rev | line source |
---|---|
nuclear@3 | 1 attribute vec3 attr_tang; |
nuclear@3 | 2 |
nuclear@6 | 3 varying vec3 vpos; |
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@6 | 21 ldir = tbn_mat * vec3(0, 0, 1); |
nuclear@3 | 22 vdir = tbn_mat * -vpos; |
nuclear@3 | 23 |
nuclear@4 | 24 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0; |
nuclear@3 | 25 } |