【发布时间】:2012-09-20 10:27:50
【问题描述】:
我正在使用 GLM 库通过 opengl 中的 obj 文件加载一个对象,但它在屏幕上颠倒显示。我还为用户提供了一种功能,因此他也可以通过鼠标相应地旋转所有对象。例如放大、放大、随y轴旋转。
问题是我不知道如何首先旋转对象以根据我的需要制作它的脸。之后我想绘制这个对象,然后鼠标可以发挥它的作用来旋转它。
我的绘图函数包含以下代码
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
glTranslatef(m_fPosX, m_fPosY,-m_fZoom);
glRotatef(m_fRotX, 1.0f, 0.0f, 0.0f);//these two for mouse movement
glRotatef(m_fRotY, 0.0f, 1.0f, 0.0f);
glRotated(180,0.0f, 0.0f, -1.0f);
glDisable(GL_TEXTURE_2D);
glColor3f(0.90f,0.90f,0.90f);
glmDraw(m_p3dModel,GLM_SMOOTH | GLM_MATERIAL);
glPopMatrix();
这里的旋转功能都依赖于鼠标的移动,但如果它被颠倒加载,我不知道如何首先让我的对象面向正确的方向,然后在这个绘图功能中允许它......这意味着我需要设置它的脸在调用此绘制函数之前。
【问题讨论】:
标签: c++ opengl rotation glm-math