【问题标题】:GLM - rotation makes objects disappearGLM - 旋转使物体消失
【发布时间】:2016-09-03 09:50:10
【问题描述】:

我正在 OpenGL 中对两个对象进行旋转。一个有效的:

        Model1 = glm::translate( ... );
        Model1 = glm::scale( ... );
        Model1 = glm::rotate(Model1, 90 , glm::vec3(1,0,0));

还有一个没有:

        Model2 = glm::translate( ... );
        Model2 = glm::scale( ... );
        Model2 = glm::rotate(Model2, 90 , glm::vec3(0,0,0));

这让我的对象消失了。

我认为这是由于乘以 0(或类似的东西)引起的。 那么,我应该如何表示No rotation呢?

轴角是一种使用旋转的好方法,还是应该将它们存储为四元数并使用不同的函数或在每次应用旋转时转换回角轴?

【问题讨论】:

  • 为什么不删除“Model2 = glm::rotate(Model2, 90 , glm::vec3(0,0,0));"这一行?
  • 因为我在 n 对象的循环中执行它,并且我想每次都应用旋转,即使它的旋转就像glm::rotate(Model2, 90 , glm::vec3(0,0,0));(对象是可旋转的如果没有这种消失的情况,我必须每次检查)

标签: c++ opengl 3d rotation glm-math


【解决方案1】:

那么,我应该如何表示No rotation呢?

0 度角(而不是 90 度角)。不是通过退化旋转轴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    相关资源
    最近更新 更多