我有一个 C++/OpenGL 程序,它在不同的旋转中创建了很多圆柱体,所以它们看起来都是连接的。我添加了一个导出方法来为 Maya 编写具有相同绘制方法的 python 脚本,这样我就可以加载脚本。
我知道当 OpenGL 创建和旋转圆柱体时,它会将它与 Z 轴对齐,并通过它的“基础”旋转和平移它。
因此,我在 Maya 转换中一直非常小心,在进行任何转换之前移动枢轴,并且将圆柱体预对齐到 OpenGL 的标准(然后冻结转换,从而创建 OpenGL 基础)。
翻译似乎都移动到了正确的位置,但我担心我是否正确地进行了旋转函数之间的转换。我了解 Maya 和 OpenGL 都以度数进行旋转。然而,OpenGL中的功能是:
glRotated(angle, x, y, z);
在 Maya 的 Python 中:
cmds.rotate(x-deg, y-deg, z-deg);
所以我一直在做的是从 OpenGL 中获取角度并将其乘以 Maya 方法的给定轴:
cmds.rotate(angle * x, angle * y, angle * z);
我认为这会起作用并给我想要的东西。但旋转似乎仍然关闭。我找不到一个很好的天气解释,或者这不能按我预期的方式工作。那么任何人都可以确认这种关系吗?