2

我正在为我正在开发的游戏构建一个快速的 3D 引擎。

目前我正在通过围绕全局轴 Y、X 然后 Z 旋转来处理 3D 对象的旋转。这是正确的方法,还是应该围绕其局部轴旋转对象?

你推荐哪个,为什么?

如果局部轴方法是正确的方法,是否必须使用 3D 3x3 或 4x4 矩阵来正确计算旋转?如何?

替代文字

4

3 回答 3

1

4x4 矩阵为您提供更大的灵活性。例如,您可以通过矩阵乘法连接多个变换(平移、旋转等)。

于 2010-10-11T21:15:28.393 回答
0

你想达到什么目的?如果您想查看对象“旋转”,则应围绕本地原点执行旋转。另一方面,围绕全局原点的旋转将导致对象“围绕”全局原点。

查看有关转换顺序的讨论here以获取说明。

于 2010-10-11T21:08:38.287 回答
0

确实没有正确的旋转顺序。如果您正在制作自己的游戏引擎,那么顺序完全取决于您。

但是,这并不是说您不能选择与其他游戏引擎保持一致。例如,Unity 以 Z、X、Y 的顺序应用欧拉角旋转。(来源)我无法确认 100%,但我使用 Unity 的经验让我相信这是使用全局轴,而不是局部轴。

如果您采用其他答案中提到的方法并连接 4x4 旋转矩阵,您可能会得到局部轴行为。

但实际上,如果你想避免所有这些问题,你可能应该只学习四元数......

于 2016-03-14T19:33:12.083 回答