我正在为我正在开发的游戏构建快速3D引擎。
目前我正在通过围绕全局轴Y,X然后Z旋转来处理3D对象的旋转。这是正确的方法,还是应该围绕其局部轴旋转对象?
你推荐哪个以及为什么?
如果局部轴方法是正确的方法,是否必须使用3D 3x3或4x4矩阵来正确计算旋转?怎么样?
答案 0 :(得分:1)
4x4 matrices为您提供更多灵活性。例如,您可以通过矩阵乘法连接几个转换(平移,旋转等)。
答案 1 :(得分:0)
你想要完成什么?如果要查看对象“旋转”,则应对本地原点执行旋转。另一方面,围绕全局原点的旋转将导致对象“围绕”全球原点。
请参阅有关转换订单here的讨论。
答案 2 :(得分:0)
确实没有正确的轮换顺序。如果您正在制作自己的游戏引擎,订单真的取决于您。
但是,并不是说你不能选择与其他游戏引擎保持一致。例如,Unity以Z,X,Y的顺序应用欧拉角旋转。(source)我无法确认100%,但我对Unity的经验让我相信它是全球使用的轴,不是本地的。
如果你采用其他答案中提到的方法并连接4x4旋转矩阵,你可能会得到局部轴行为。
但实际上,如果你想避免所有这些问题,你应该只是了解四元数......