-1

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

也许将对象的本地坐标转换为世界坐标。

4

1 回答 1

1

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

通常,大多数 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/

于 2013-04-02T07:41:30.933 回答