
142 II Rendering
// Vertex -Shader Stage
flat out vec2 tex_coord;
uniform sampler2D zbuffer ;
void main ( void)
{
tex_coord = gl_Vertex.xy;
float depth = SampleBuf (zbuffer , tex_coord).x;
// screen space --> canonical screen space
vec3 pos_css = MAP_0To1_ -1To1 ( vec3 ( gl_Vertex.xy, depth ));
// canonical screen space --> object space
vec3 pos_wcs = PointCSS2WCS ( zbuffer_css);
// world space --> clip space
gl_Position = gl_ModelViewProjectionMatrix *
vec4 (pos_wcs , 1.0);
}
// Geometry - Shader Stage
layout (points ) in;
layout (points , max_vertices = 1) out;
uniform int vol_depth;
flat in vec2 tex_coord[];
flat out vec2 gtex_coord;
void main ( void)
{
gtex_coord ...