nuclear@60: /* multipass renderer shader 1: RGB: normal */ nuclear@60: nuclear@60: uniform sampler2D tex_norm; nuclear@60: nuclear@60: varying vec3 pos, norm, tang; nuclear@60: nuclear@60: void main() nuclear@60: { nuclear@60: vec3 n = normalize(norm); nuclear@60: vec3 t = normalize(tang); nuclear@60: vec3 b = cross(n, t); nuclear@60: nuclear@60: mat3 tbn_mat = mat3( nuclear@60: t.x, t.y, t.z, nuclear@60: b.x, b.y, b.z, nuclear@60: n.x, n.y, n.z); nuclear@60: nuclear@60: // grab normal from the normal map, remap it and transform it to view space nuclear@60: n = texture2D(tex_norm, gl_TexCoord[0].st).xyz * 2.0 - 1.0; nuclear@60: n = normalize(tbn_mat * n); nuclear@60: nuclear@60: gl_FragColor = vec4(n, 0.0); nuclear@60: }