到目前为止,这就是我对图形管道(Opengl)的理解,有人可以确认吗?
对象空间:对象(几何)特定坐标;
世界空间:将物体旋转、平移和缩放到世界空间;
- 眼睛空间:限制世界观的视锥体,使用投影矩阵将 3d 坐标投影到 2d 平面(近平面?),在必要时缩放它,并在其超出视锥体/眼睛空间时对其进行裁剪
我读过眼睛空间反转 Z 轴,所以,原来的 +z 顶点从眼睛向后转动,为什么?
没有。有
→ 模型视图变换 →</p>
→ 投影变换 →</p>
→ 齐次坐标 w 归一化 →</p>
模型视图和投影变换通常用矩阵乘法表示。对使用的矩阵没有特殊要求,但您通常希望它们是非奇异的。但在这之间,任何事情都会发生。通常发现的变换是旋转缩放+平移和剪切缩放+平移。
我读过眼睛空间反转 Z 轴,所以,原来的 +z 顶点从眼睛向后转动,为什么?
不,不是。我认为您可能会在投影矩阵中使用负 z 和 w 元素。但这只是为了获得正确的深度排序。您可以很好地翻转它们的符号,并通过对深度范围和深度测试功能进行某些调整来逆转这种效果。那里的负号只是常规获得默认设置的右手坐标系,即正 Z 眼空间坐标出现在屏幕上。