kinect-viewer / main.vs

/*
 * Copyright 2010 Cliff L. Biffle.  All Rights Reserved.
 * Use of this source code is governed by the Apache License 2.0,
 * which can be found in the LICENSE file.
 */
 
uniform sampler2D depthTex;
uniform sampler2D colorTex;

/*
 * Vertex Shader entry point.
 */
void main() {
  // Load our depth from the camera's depth texture.
  vec2 imageCoord = gl_Vertex.xy * vec2(1., 4./3.) * -0.5 + 0.5;
  vec4 sample = texture2D(depthTex, imageCoord);
  vec3 kinectPoint = vec3(gl_Vertex.xy, sample.g * 65536.);
  
  // Undo the Kinect's perspective projection, leaving the homogeneous term.
  vec4 vertex = vec4(kinect_unproject(kinectPoint), gl_Vertex.w);
  
  // Project the point using GL's perspective settings.
  gl_Position = gl_ModelViewProjectionMatrix * vertex;

  // The normal was computed in Kinect-space.  Unproject it too.
  vec3 normal = kinect_unproject_normal(normalize(gl_Normal), kinectPoint, vertex.xyz);
  
  if (vertex.z <= 0.) {
    gl_FrontColor = vec4(0,0,0,0);
    gl_PointSize = 0.;
    return;
  } else {
    gl_FrontColor = light_vertex(normal);
  }
  
  vec4 vertexInEye = gl_Position;
	float dist = distance(vertexInEye.xyz, vec3(0,0,0));
	float psize = clamp(1.5 / dist * vertex.z, gl_Point.sizeMin, gl_Point.sizeMax);
	gl_PointSize = psize;
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.