I suppose you are writing the data in a texture with gl_FragColor = vec4(..., 
depth).
What exactly are you doing with the data that you write afterwards, or how do 
you actually obtain your point cloud?

If for example you take the position vec4(..., depth) (which is a world space 
position?) and you would project it on the image plane by doing 
PROJECTIONMATRIX * MODELVIEWMATRIX * vec4(..., depth) then, if depth is not 
equals 1.0 you get a completely different projection on the screen after doing 
the perspective division.

Remember: your world space positions are specified in the homogenous coordinate 
system, meaning that a world space position (x,y,z) is represented by 
(x,y,z,1). If you want to project a world space position on the image plane it 
needs to have the w component (the 4th one) set to 1, since that's where the 
effect of perspective foreshortening is kind of "stored" after multiplication 
with the projection matrix.
The perspective division (dividing the x,y,z component by the resulting w 
component) then actually performs the projection.

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=8776#8776





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to