0

我正在使用 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();

这里的旋转功能都依赖于鼠标的移动,但是如果它被颠倒加载,我不知道如何首先让我的对象面向正确的方向,然后在这个绘图函数中允许它......这意味着我需要在调用它之前设置它的面绘图功能。

4

1 回答 1

1
glRotatef(m_fRotY, 1.0f, 0.0f, 0.0f);

应该

glRotatef(m_fRotY, 0.0f, 1.0f, 0.0f);

复制/粘贴是万恶之母 :o)

对于转换/投影/模型视图教程:检查链接

于 2012-09-20T10:33:15.487 回答