世界到当地的坐标

时间:2013-04-01 22:49:44

标签: opengl graphics opengl-es game-physics

我正在使用光线拾取,现在拥有世界矩阵中的坐标。如何将其转换为我的对象本地坐标?

可能将对象的本地坐标转换为世界坐标。

1 个答案:

答案 0 :(得分:1)

你的问题不清楚。你说你使用光线拾取,我在你选择图像中像素的位置时读取/理解,并从点屏幕空间坐标计算世界点坐标,最后你想在对象空间坐标中得到这个点? / p>

通常,大多数3D对象应用4x4矩阵变换以在空间中进行变换(缩放,旋转,移动)。当你的对象没有应用这个变换时,它被称为绑定姿势或对象空间。当矩阵M应用于对象时,所得到的变换对象被称为在世界空间中。如果你有矩阵M(你知道用于将对象从对象转换到世界空间的矩阵),并且你已经能够在世界空间中的对象上选择一个点(例如它的一个顶点)并想知道在物体空间中该点的位置是什么,那么您需要做的就是将矩阵逆M-1应用于此点坐标(其中M再次是从物体到世界空间的矩阵)。

从技术上讲,要实现这一目标,您需要了解:

  • 应用于对象的对象到世界矩阵是什么,你知道吗,你有权访问它吗?让我们称之为矩阵M,
  • 你需要从这个矩阵M计算矩阵逆M-1,你知道怎么做吗?
  • 一旦你有了M-1,那就做一个简单的点矩阵乘法:Pobject = Pworld * M-1。

如果您对矩阵和矩阵变换不熟悉或不熟悉,我强烈建议您阅读www.scratchapixel.com,特别是关于矩阵的课程(第4课)。

关于矩阵的课程:http://scratchapixel.com/lessons/3d-basic-lessons/lesson-4-geometry/

关于计算矩阵的逆矩阵的课程:http://www.scratchapixel.com/lessons/3d-advanced-lessons/matrix-inverse-row-reduction/