我正在尝试绘制带有图像背景的动画模型。 要正确绘制我的模型,我需要使用glMatrixMode,glLoadIdentity,gluPerspective等。但是,要在背景上绘制rect,我需要更改我设置的所有模式和矩阵以正确查看我的模型。
我在下面发布了我的代码。任何人都可以告诉我应该做什么来同时正确地看到我的模型和背景?
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear The Screen And The Depth Buffer
glLoadIdentity(); // Reset MV Matrix
glBindTexture(GL_TEXTURE_2D, m_texture1);
glBegin(GL_QUADS);
glColor4f(1.0f, 1.0f, 1.0f, 1);
glTexCoord2f(0, 1);
glVertex3f(-1.0, -1.0, 0);
glTexCoord2f(0, 0);
glVertex3f(-1.0, 1.0, 0);
glTexCoord2f(1, 0);
glVertex3f(1.0, 1.0, 0);
glTexCoord2f(1, 1);
glVertex3f(1.0, -1.0, 0);
glEnd();
const double aspectRatio = (float) getOpenGLViewWidth()
/ getOpenGLViewHeight(), fieldOfView = 45.0;
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluPerspective(fieldOfView,
aspectRatio,
1.0,
1000.0);
glMatrixMode (GL_MODELVIEW); // Select The Modelview Matrix
glLoadIdentity();
glTranslatef(0.0f, -25.0f, -70.0f); // Move 40 Units And Into The Screen
glViewport(0, 0, getOpenGLViewWidth(), getOpenGLViewHeight());
// glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
recursive_render(_scenes[0], _scenes[0]->mRootNode, 25);
答案 0 :(得分:0)
如果您的图像背景是一个静态背景,应填充整个视口而不是随场景一起旋转,则应使用正交矩阵将其渲染为单独的。
我的遗产GL有点生疏,但看起来应该是这样的:
请注意,如果您想保存一些填充率,您可能需要翻转订单并最后渲染背景。