这不是一个问题,但我对 3D 空间对应什么感到非常困惑。我习惯于听到模型、视图、投影空间,但在我的工作中他们使用世界、眼睛、投影。我没有意识到世界和眼睛是模型和视图的同义词,因此如果有人对此有任何困惑,我发现以下说明可以帮助您(希望它会对您有所帮助)。
局部空间:这些是在 3Ds Max 或任何其他渲染程序中构成 3D 模型的坐标。它定义 3D 模型本身的顶点空间。
模型/世界空间:将局部空间坐标乘以模型/世界矩阵会将它们带入模型/世界空间。模型/世界空间是我们想象的 3D 世界,没有考虑任何视角。
视野/眼睛空间:将模型/世界空间坐标乘以视图/眼睛矩阵会将它们带入视图/眼睛空间。这是坐标放置在屏幕上的位置,偏离所使用的视角。因此,如果您使用透视投影,这将定位所有坐标,使其看起来有深度。
投影矩阵:将视图/眼睛空间坐标乘以投影矩阵将获取 3D 透视点并将它们正确映射到 2D 视口(也称为屏幕)。
视口/均匀空间:乘以投影矩阵后,您的点需要映射到“真实平面”。这本质上是一种标准化;我们获取每个 x、y、z 坐标并将其除以它的 w 分量。坐标也被调整以将原点从屏幕中心移动到左上角。
请随时提供建设性的批评,我愿意接受任何建议。这是我使用的一些附加信息http://antongerdelan.net/opengl/raycasting.html http://antongerdelan.net/opengl/raycasting.html
只是作为一个想法,但您可以添加最后一个阶段“视口空间”(或类似的东西)。
您在投影矩阵阶段暗示过它,但它是应用于投影矩阵之后的顶点的单独变换,其中 x、y 和 z 坐标除以它们的 w 分量以将它们映射到“真实平面”,从齐次坐标,坐标调整为将原点(0,0)从屏幕中心移动到左上角。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)