Just trying to wrap my head around the differences in the transformations in OpenGL and D3D.
As far as I know OpenGL usually transforms z into the range [-1;1] and then later on maps that to a depth buffer value of [0;1].
Direct3D however, always works in the [0;1] range for z values.
Is this so far correct?
Now what if I use a projection matrix in OpenGL, that also transforms z to [0;1] range? I always thought this notion of -1 being at the near plane and +1 being at the far plane was a built in convention, that you cannot get around. However the code that I work with, always sets the projection matrices up this way, and apparently that works too.
Is there any other setting, that could affect this? I would have expected, that objects that are in front of the near plane (outside the view-frustum, the ones that fall into the [-1;0] range) would also get rasterized as "inside" the view frustum on OpenGL based systems, but this is not the case.
Anything that I might have missed?