The OpenGL documentation for gluProject
writes that the projection of point v
is computed using the given projection and model-view matrix via v'' = P * M * v
then window coordinates are derived using the current viewport, e.g. winZ = (v''(2) + 1)/2
.
Isn't this missing the perspective division of v''
by v''(3)
? So then we should really have formulas like winZ = (v''(2)/v''(3) + 1)/2
.
This agrees with my machine's opengl implementation and the implementation on the OpenGL wiki.
So, is the documentation wrong?
Yes, the documentation appears to be missing the divide (which is the only reason for returning GLU_FALSE
, by the way). Check the mesa implementation (lines 249-252), for instance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With