我正在尝试使用glm :: rotate方法将x,y,z轴周围的多个旋转应用于对象,但由于某种原因,它只围绕一个轴旋转,似乎完全忽略了其他旋转。 以下是我如何应用轮换:
glm::mat4 rotateTransform = glm::mat4(1.0f);
rotateTransform = glm::rotate(rotateTransform, this->rotation.x, glm::vec3(1, 0, 0));
rotateTransform = glm::rotate(rotateTransform, this->rotation.y, glm::vec3(0, 1, 0));
rotateTransform = glm::rotate(rotateTransform, this->rotation.z, glm::vec3(0, 0, 1));
return glm::translate(glm::mat4(1.0f), this->position) * rotateTransform * glm::scale(glm::mat4(1.0f), this->scale);
该方法返回modelToWorldMatrix,然后传递给我的vertexShader,我在顶点执行标准计算:
vec4 vertexPositionInModelSpace = vec4(Position, 1);
vec4 vertexInWorldSpace = gModelToWorldTransform * vertexPositionInModelSpace;
vec4 vertexInViewSpace = gWorldToViewTransform * vertexInWorldSpace;
vec4 vertexInHomogeneousClipSpace = gProjectionTransform * vertexInViewSpace;
gl_Position = vertexInHomogeneousClipSpace;
那么如何使用glm :: mat4矩阵应用多个旋转?