OpenGL正交投影

OpenGL正交投影,opengl,graphics,Opengl,Graphics,在gluOrtho2d的描述中,他们说这就像glOrtho,近=1,远=1 为什么在观众的身后 为什么要描述矩阵 这里:有 Z轴反转 1) 顾名思义,gluOrtho2d用于绘制深度坐标并不重要的东西。它的设置使您可以将两个分量的顶点发送到gpu,深度默认为0。在这种情况下,有一个投影是有意义的,其中0正好位于近/远平面之间,因此您不必担心它。值得一提的是,在正交投影中,“在”观察者后面的想法失去了一些意义,因为从观察者到物体的距离对投影没有影响,除了选择是否绘制它 2) 可能是因为在OpenG

在gluOrtho2d的描述中,他们说这就像glOrtho,近=1,远=1

  • 为什么在观众的身后
  • 为什么要描述矩阵 这里:有 Z轴反转
  • 1) 顾名思义,gluOrtho2d用于绘制深度坐标并不重要的东西。它的设置使您可以将两个分量的顶点发送到gpu,深度默认为0。在这种情况下,有一个投影是有意义的,其中0正好位于近/远平面之间,因此您不必担心它。值得一提的是,在正交投影中,“在”观察者后面的想法失去了一些意义,因为从观察者到物体的距离对投影没有影响,除了选择是否绘制它


    2) 可能是因为在OpenGL空间中,负Z轴进入屏幕,所以如果glOrtho没有对其进行求反,则必须始终为“近”和“远”传递负值。我想这会有点奇怪。

    Z轴从屏幕上出来。这是一个右手坐标系。是的……绘图有右手坐标系,而投影本身有左手坐标系(我仍然不明白为什么会这样)。然而,你们知道为什么吗?还有,为什么会有人关心0是否介于远近之间?为什么不能接近0?@Roveris你不想在接近的剪裁平面上画图,因为OpenGL中几乎所有的东西都是浮点数——这意味着精确的比较(0==0?)是不可靠的。换言之,近剪裁平面会随机切掉一些内容。如果您将这些值插入到
    glOrtho
    ,[2][2]=-1和[2][3]=(tz)=0中,您就有了一个非常简单的变换。它实际上对Z坐标没有任何影响,只是更改了深度要求的符号。究竟是什么?@genpfault:很可能是
    glutho2d