我在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?
轴角是一种使用旋转的好方法,还是应该将它们存储为四元数并使用不同的函数或每次应用旋转时转换回角度轴?
答案 0 :(得分:4)
然后,我应该如何表示无轮换?
角度为0(而不是90)。不是通过退化旋转轴。