File: depth.vert

package info (click to toggle)
meshlab 2022.02%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 47,348 kB
  • sloc: cpp: 536,635; ansic: 27,783; sh: 539; makefile: 36
file content (55 lines) | stat: -rw-r--r-- 1,955 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//uniform float far;
//uniform float near;
uniform float width;
uniform vec3 meshCenter;

/*uniform mat4 modelViewMX;
uniform mat4 prjMX;
*/
void main(void)
{

  //vec3 lightPosition = vec3(-1.0,0.0,0.0);
   vec4 lightPosition = gl_ModelViewMatrix * gl_LightSource[0].position;
//Reproduce GL_LookAt behaviour
   //create ortonormal basis for lightspace
  vec3 newZ = normalize(lightPosition .xyz);
   vec3 newX = normalize(cross(newZ, vec3(0.0, 0.80001, 0.0)));
   vec3 newY = normalize(cross(newX, newZ));
  

    mat4 toLightSpaceRot = mat4(
                        newX.x, newY.x, newZ.x,  0.0, 
                        newX.y, newY.y, newZ.y,  0.0,
                        newX.z, newY.z, newZ.z,  0.0,
                        0.0, 0.0, 0.0,  1.0
                       );
   
     
              
//Perform parallel Ortographic projection
   float nearP = - (width / 2.0);//meshCenter.z - (width / 2.0); //distance of Front clipping plane from VRP measured along VPN (a.k.a. lightDir) 
   float farP = (width / 2.0);//meshCenter.z + (width / 2.0);//distance of Back clipping plane from VRP measured along VPN (a.k.a. lightDir) 
   float leftP = meshCenter.x - width/2.0;
   float rightP = meshCenter.x + width/2.0;
   float bottomP = meshCenter.y - width/2.0;
   float topP = meshCenter.y + width/2.0;
      
                  
   mat4 parallelViewProject = mat4(
                        2.0/(rightP-leftP), 0.0, 0.0, 0.0,
                        0.0, 2.0/(topP-bottomP), 0.0, 0.0,
                        0.0, 0.0, 2.0/(farP - nearP), 0.0,
                       -(rightP + leftP)/(rightP - leftP), -(topP + bottomP)/(topP-bottomP), -(farP + nearP)/(farP - nearP), 1.0
                       );
                     

 gl_Position =  parallelViewProject
                  * toLightSpaceRot 
                  * gl_Vertex;
                    
}

/*void main(){
  gl_Position = ftransform();
}*/