- uniform int renderpass;
- uniform vec3 lightPos;
- uniform float sFar;
- varying vec3 normal;
- varying vec3 pos;
- void main(void){
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = gl_ModelViewMatrix * gl_Vertex - vec4(lightPos.xyz, 1.0) ;
- float L= length (gl_Position.xyz);
- gl_Position /= -L;
- if (renderpass == 1) gl_Position.z *=-1.0;
- gl_Position.z += 1.0;
- gl_Position.xy /= gl_Position.z;
- if (gl_Position.z >= 0.01){
- gl_Position.z = L / sFar;//Todo: optimieren
- gl_Position.w = 1.0;
- }
- else{
- gl_Position.z = -1.0;
- gl_Position.w = -1.0;
- }
- gl_Position.z = 2.0 * gl_Position.z -1.0; //Todo: optimieren
- pos=gl_Position.xyz;
- }