Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 为什么modeview和相机矩阵使用摩擦方向_Opengl_Matrix_Opengl Es_3d_Webgl - Fatal编程技术网

Opengl 为什么modeview和相机矩阵使用摩擦方向

Opengl 为什么modeview和相机矩阵使用摩擦方向,opengl,matrix,opengl-es,3d,webgl,Opengl,Matrix,Opengl Es,3d,Webgl,我通常会发现矩阵库从RUB(右上)向量构建modelview和cameras矩阵,如以下页面所示: RUB元组只是一个通用标准吗? 否则,是否有理由认为摩擦矢量优于任何其他方向(如向前-向上-向右)?特别是如果您使用可编程管道,您几乎可以完全自由地使用坐标系以及如何变换几何体。但是,一旦在顶点着色器中应用了所有变换(导致将向量指定给gl\u Position),顶点着色器和片段着色器之间的管道中仍然有一个固定的功能块。该固定功能块依赖于变换的顶点位于定义良好的坐标系中 gl\u位置位于一个称

我通常会发现矩阵库从RUB(右上)向量构建modelview和cameras矩阵,如以下页面所示:

RUB元组只是一个通用标准吗?
否则,是否有理由认为摩擦矢量优于任何其他方向(如向前-向上-向右)?

特别是如果您使用可编程管道,您几乎可以完全自由地使用坐标系以及如何变换几何体。但是,一旦在顶点着色器中应用了所有变换(导致将向量指定给
gl\u Position
),顶点着色器和片段着色器之间的管道中仍然有一个固定的功能块。该固定功能块依赖于变换的顶点位于定义良好的坐标系中

gl\u位置
位于一个称为“剪辑坐标”的坐标系中,该坐标系在除以向量的
w
坐标后,会变成“标准化设备坐标”(NDC)

基于NDC中的矢量,固定函数光栅化块生成像素。它将使用第一个坐标映射到水平窗口方向,使用第二个坐标映射到垂直窗口方向。第三个坐标将用于计算深度,可用于深度测试

这意味着在应用所有变换后,第一个坐标必须是左右的,第二个坐标必须是自底向上的,第三个坐标必须是前后的(如果更改深度测试,它可能是前后的)

如果使用modelview和投影矩阵的经典设置,则可以使用modelview矩阵将原始几何体转换为此方向,然后使用投影矩阵应用(例如透视)


我认为没有任何东西可以阻止您使用不同的方向作为modelview转换的结果,然后在投影矩阵中包含旋转,以将整个对象转换为正确的剪辑坐标空间。但是我看不出有什么好处,而且看起来这只会增加不必要的混乱。

特别是如果您使用可编程管道,您几乎可以完全自由地使用坐标系,以及如何变换几何体。但是,一旦在顶点着色器中应用了所有变换(导致将向量指定给
gl\u Position
),顶点着色器和片段着色器之间的管道中仍然有一个固定的功能块。该固定功能块依赖于变换的顶点位于定义良好的坐标系中

gl\u位置
位于一个称为“剪辑坐标”的坐标系中,该坐标系在除以向量的
w
坐标后,会变成“标准化设备坐标”(NDC)

基于NDC中的矢量,固定函数光栅化块生成像素。它将使用第一个坐标映射到水平窗口方向,使用第二个坐标映射到垂直窗口方向。第三个坐标将用于计算深度,可用于深度测试

这意味着在应用所有变换后,第一个坐标必须是左右的,第二个坐标必须是自底向上的,第三个坐标必须是前后的(如果更改深度测试,它可能是前后的)

如果使用modelview和投影矩阵的经典设置,则可以使用modelview矩阵将原始几何体转换为此方向,然后使用投影矩阵应用(例如透视)


我认为没有任何东西可以阻止您使用不同的方向作为modelview转换的结果,然后在投影矩阵中包含旋转,以将整个对象转换为正确的剪辑坐标空间。但我看不出有什么好处,而且看起来这只会增加不必要的混乱。

哇,谢谢,你给了我很多东西要消化。需要一些时间来尝试完全理解你的解释。哇,谢谢,你给了我很多东西要消化。需要一些时间来完全理解你的解释。