Я загружаю объект через файл obj в opengl с помощью библиотеки GLM, но он появляется на экране вверх ногами. Также я предоставляю возможность пользователю, чтобы он мог вращать все объекты соответственно с помощью мыши. например увеличить и увеличить масштаб и вращаться с осью 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();
здесь все функции поворота зависят от движения мыши, но если он перегрузится с ног на голову, я не знаю, как сначала сделать мой объект направленным в правильном направлении, а затем разрешить его в этой функции рисования … Что означает, что мне нужно установить его лицо перед вызовом этого функция рисования.
glRotatef(m_fRotY, 1.0f, 0.0f, 0.0f);
должно быть
glRotatef(m_fRotY, 0.0f, 1.0f, 0.0f);
копировать / вставить — мать многих зол: о)
Для трансформации / проекции / модели просмотра учебника: проверьте ссылка на сайт
Других решений пока нет …