如何更改OpenGL中的旋转中心

时间:2009-07-15 10:08:08

标签: iphone opengl-es glrotate

我有一个3D模型(OpenGL ES 1.1 iPhone SDK v3.0)有点复杂(即成千上万的顶点和面孔)我想在模型中心或其附近围绕Y轴旋转此模型。问题是glRotate围绕其一个底边中心/附近的点旋转我的模型,而不是靠近模型的中心。想象一下,一辆汽车在灯柱周围开得很紧,这基本上就是我所拥有的。我想让汽车被撞在灯柱上并围绕它旋转。 (下面的一些消息来源)

   // BLUE BLOCK----------------------------------------------
    glPushMatrix();
    {
        glTranslatef(blueLocation[0], blueLocation[1], blueLocation[2]);
        glRotatef(blueRotAngle, 0.0, 0.0, 1.0);
        ...

问题:
是否有一种简单的方法来改变OpenGL中的旋转中心?

3 个答案:

答案 0 :(得分:9)

不确定。翻译对象。然后旋转它。

答案 1 :(得分:1)

您应该使用模型API来更改 模型 来源。如果你能分辨出你正在使用哪一个,也许我可以帮助更多。

如果您可以访问可以编辑模型的软件,则可以直接在模型文件中修复该模型并从代码中删除任何黑客。

答案 2 :(得分:1)

值得记住的是,OpenGL中的所有操作都是相对于原点执行的。你不能“改变OpenGL中的旋转中心”。你相对于那个起源移动世界。