c++ - GLM - 旋转使对象消失

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

我正在 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应该怎么表示呢?

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

最佳答案

Then, how should I represent No rotation?

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

关于c++ - GLM - 旋转使对象消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39305559/

相关文章:

c++ - weak_ptr 是如何工作的?

使用 OpenGL 进行 Qt 渲染

cocoa - glEnableVertexAttribArray 给出无效操作

c++ - obj 文件中纹理坐标的含义是什么

c++ - 在不释放所有动态分配的资源的情况下结束程序是否有风险?

c++ - 防止在头文件之外创建子类

c++ - 为什么 c++11 std::array 使用模板来初始化 max_size 而不是构造函数?

delphi - OpenGL 快速闪烁问题 - 现在不显示图像

c++ - glPushMatrix 停止所有旋转的发生

3d - 在 Mathematica 7 中使用抗锯齿进行慢速 3D 旋转