OpenGL 在屏幕上渲染之前旋转对象以设置其正确的表面
opengl rotate an object to set its correct face before render on screen
我正在使用 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();
这里的旋转功能都依赖于鼠标移动,但如果它被颠倒加载,我不知道如何首先让我的对象朝向正确的方向,然后允许它在这个绘制函数中......这意味着我需要在调用此绘制函数之前设置其面。
glRotatef(m_fRotY, 1.0f, 0.0f, 0.0f);
应该是
glRotatef(m_fRotY, 0.0f, 1.0f, 0.0f);
复制/粘贴是许多邪恶之母:o)
对于转换/投影/模型视图教程:检查链接
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在24位SDL_Surface上设置像素的颜色
- std::设置自定义比较器
- 如何设置一个范围来提取我想要获得的信息
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 用CGAL设置表面网格参数化的角落
- OpenGL 在屏幕上渲染之前旋转对象以设置其正确的表面
- 设置DirectX9表面像素