OpenGL旋转无法正常工作

时间:2015-11-30 15:59:07

标签: opengl graphics rotation

我有3个函数,它们应该正确地执行三角形的旋转,但它没有。我的想法是,如果我想围绕它的中心旋转我的三角形,我应该将三角形原点转换为0,0,0, translateToOrigen执行旋转,然后使用rotate将三角形转换回其原始位置:

translateBacktoPosition

我调用void Triangle::rotate(float angle,glm::vec3 axis) { translateToOrigen(); modelMatrix = glm::rotate(modelMatrix, glm::radians(angle), axis); translateBacktoPosition(); } void Triangle::translateToOrigen() { modelMatrix = glm::translate(modelMatrix, -_origen); } void Triangle::translateBacktoPosition() { modelMatrix = glm::translate(modelMatrix, _origen); } - 函数如下:

rotate

我如何理解这一点,这应该围绕z轴​​旋转我的三角形-90度。 但实际发生的是,我的三角形被拉伸而没有显示在正确的位置。 我已经测试了t1.rotate(-90.0f, glm::vec3(0, 0, 1)); translateToOrigen()并且它们工作得非常好,直到我尝试旋转。

我保存变量modelMatrix中的所有矩阵,当完成平移和旋转时,我通过均匀发送到着色器,我将此矩阵与我的顶点相乘。

我得不到我所缺少的东西。

0 个答案:

没有答案
相关问题