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 に答える