Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
openGL中的z坐标和查看器_Opengl - Fatal编程技术网

openGL中的z坐标和查看器

openGL中的z坐标和查看器,opengl,Opengl,我对glOrtho方法生成的视图体积感到困惑, 我知道最后两个参数是Z轴的, 第一个表示观察者和近平面之间的距离,第二个表示观察者和远平面之间的距离 我的问题是,观察者(相机)精确地位于Z坐标中的什么位置 在这个链接中,一些代码使近平面为正,远平面为负,在这种情况下,我们能说Z-在查看器后面,Z+在查看器前面吗 如果是,尝试将其中一个三角形的所有顶点的Z坐标设为负值,您会注意到,尽管它位于查看器后面,但它仍会出现,为什么 第一个表示观察者和近平面之间的距离,第二个表示观察者和远平面之间的距离 不

我对
glOrtho
方法生成的视图体积感到困惑, 我知道最后两个参数是Z轴的, 第一个表示观察者和近平面之间的距离,第二个表示观察者和远平面之间的距离

我的问题是,观察者(相机)精确地位于Z坐标中的什么位置

在这个链接中,一些代码使近平面为正,远平面为负,在这种情况下,我们能说Z-在查看器后面,Z+在查看器前面吗

如果是,尝试将其中一个三角形的所有顶点的Z坐标设为负值,您会注意到,尽管它位于查看器后面,但它仍会出现,为什么

第一个表示观察者和近平面之间的距离,第二个表示观察者和远平面之间的距离

不,不是。正交投影定义了一个长方体。zNear和zFar是框的位置,而不是与“查看器”的距离

正交投影不像透视投影那样具有“查看器”。它们有一个观察方向,而不是观察位置。视图的方向始终是zFar距离最远,zNear距离最近的方向。如果zNear大于zFar,则视图方向为正Z;否则,它就是负Z

第一个表示观察者和近平面之间的距离,第二个表示观察者和远平面之间的距离

不,不是。正交投影定义了一个长方体。zNear和zFar是框的位置,而不是与“查看器”的距离


正交投影不像透视投影那样具有“查看器”。它们有一个观察方向,而不是观察位置。视图的方向始终是zFar距离最远,zNear距离最近的方向。如果zNear大于zFar,则视图方向为正Z;否则,它是负Z。

实际上你的问题有点让人困惑。我认为您可以尝试glLookAt(),使对象从不同的角度显示并看到差异。这里有一个链接
事实上,你的问题有点让人困惑。我认为您可以尝试glLookAt(),使对象从不同的角度显示并看到差异。这里有一个链接

如果它有助于您,您可以将摄像头视为处于nearval,无论其值是多少如果它有助于您将摄像头视为处于nearval,无论其值是多少,那么我们可以说摄像头始终位于nearval,并自动指向farVal,无论它们在哪里?@user1841718:对于正交投影,是的。那么我们可以说相机始终位于nearVal,并且它自动指向farVal,无论它们在哪里?@user1841718:对于正交投影,是的。