【发布时间】:2020-07-04 11:04:58
【问题描述】:
我正在尝试在 OpenGL 游戏中创建背景。这是基于 freeglut 和 OpenGL 即时模式(由于要求)。我的问题是我无法正确显示背景图像,它显示为与我的相机一起旋转的细条。这让我相信这是一个定位问题,但我已尝试更改对象的所有 Z 位置。下面是我要绘制背景的渲染函数,然后是播放器“mSpaceShip”
对于某些上下文 屏幕宽度 = 1200 屏幕高度 = 1200
void GameInstance::Render()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluOrtho2D(-SCREEN_WIDTH / 2, SCREEN_WIDTH / 2, -SCREEN_HEIGHT / 2, SCREEN_HEIGHT / 2);
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glTranslatef(0.0f, 0.0f, 100.0f);
glBegin(GL_QUADS);
glVertex2i(0, 0);
glVertex2i(SCREEN_WIDTH, 0);
glVertex2i(SCREEN_WIDTH, SCREEN_HEIGHT);
glVertex2i(0, SCREEN_HEIGHT);
glEnd();
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
mSpaceShip->Render();
//for (int i = 0; i < 500; i++) {
// cubeField[i]->Draw();
//}
glFlush();
glutSwapBuffers();
}
【问题讨论】:
标签: c++ opengl freeglut opengl-compat