what is the range of clipping space in OpenGL?
#1 Members - Reputation: 173
Posted 30 November 2012 - 02:52 PM
I calculated perspective matrix myself and passed it to vertex shader, but why triangle was visible only when the z value of vertices multiplied by my perspective matrix is positive? Since the z value range of perspective frustum [n, f] is mapped to [-1. 1] in clipping space, any -1 < z < 1 should not be clipped which is just not the case in my situation. In case that my perspective matrix is miscalculated, I directly passed vertices with -1 < z < 0 to vertex shader, still I got nothing. but it works just fine with 0 < z < 1.
#2 Members - Reputation: 882
Posted 02 December 2012 - 02:14 PM
If you use something like 0 and 100 for n and f respectively, you should be able to see geometry where incoming vertex z is negative.
Can you post the function that calculates the projection matrix, and your vertex shader?
Small and simple Python 3.x media library: pslab
#3 Crossbones+ - Reputation: 3870
Posted 02 December 2012 - 04:15 PM
The near-plane value should never be zero, or you will lose an immense amount of precision (remember the depth buffer uses a logarithmic scale). The best values depend on the scale of the scene, but if you're working in meters, 0.1 to 1000 is a good start IMHO.From what I understand, near and far represent values that relate to camera space, not clip space.
If you use something like 0 and 100 for n and f respectively, you should be able to see geometry where incoming vertex z is negative.
Edited by Bacterius, 02 December 2012 - 04:15 PM.
#4 Members - Reputation: 882
Posted 02 December 2012 - 11:44 PM
The near-plane value should never be zero, or you will lose an immense amount of precision (remember the depth buffer uses a logarithmic scale). The best values depend on the scale of the scene, but if you're working in meters, 0.1 to 1000 is a good start IMHO.
Ah, yes, as written here: http://www.opengl.org/archives/resources/faq/technical/depthbuffer.htm
Thanks for pointing that out.
Small and simple Python 3.x media library: pslab






