intravenous

diff 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
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/sdr/vein.v.glsl	Sun Apr 22 03:35:18 2012 +0300
     1.3 @@ -0,0 +1,26 @@
     1.4 +attribute vec3 attr_tang;
     1.5 +
     1.6 +varying vec3 vpos, vnorm;
     1.7 +varying vec3 ldir, vdir;
     1.8 +
     1.9 +void main()
    1.10 +{
    1.11 +	gl_Position = ftransform();
    1.12 +	vpos = (gl_ModelViewMatrix * gl_Vertex).xyz;
    1.13 +	vec3 norm = gl_NormalMatrix * gl_Normal;
    1.14 +	vec3 tang = gl_NormalMatrix * attr_tang;
    1.15 +
    1.16 +	vec3 n = normalize(norm);
    1.17 +	vec3 t = normalize(tang);
    1.18 +	vec3 b = cross(n, t);
    1.19 +
    1.20 +	mat3 tbn_mat = mat3(
    1.21 +			t.x, b.x, n.x,
    1.22 +			t.y, b.y, n.y,
    1.23 +			t.z, b.z, n.z);
    1.24 +	ldir = tbn_mat * (gl_LightSource[0].position.xyz - vpos);
    1.25 +	vdir = tbn_mat * -vpos;
    1.26 +	vnorm = n;
    1.27 +
    1.28 +	gl_TexCoord[0] = gl_MultiTexCoord0;
    1.29 +}