【发布时间】:2017-02-24 17:42:11
【问题描述】:
我创建了 2 个圆柱体,我希望使用以下代码进行旋转:
glm::vec3 randVec3 = { 1.0f, 0.0f, 0.0f };
glm::vec3 randVec4 = { 0.0f, 1.0f, 0.0f };
d_tfms[i] = glm::rotate(90.0f, randVec3 );
d_tfms[i] = glm::rotate(10.0f, randVec4);
d_tfms[i] 是一个 4x4 矩阵,然后作为 ModelView 矩阵传输到顶点着色器。
在任何旋转之前,这是我的圆柱体的样子: (忽略其他形状,这里的圆柱体显示为 空心 2D 圆)
第一次旋转后(x 轴 90 度):
第二次旋转后(y轴10度):
如您所见,这些旋转没有意义。 特别是,如果您查看第一张图像与第二张图像中的深蓝色圆柱体,它似乎并没有围绕自己的局部 x 轴旋转。
可能是什么问题?
【问题讨论】:
-
除了您为
d_tfms[i]展示了两个分配之外,您没有展示这些圆柱体在世界坐标中的位置。顺便说一句,它们在世界空间中的位置不同,因此它们的 ModelView 矩阵是不同的,即使旋转相同。