我试图在屏幕上画一个正方形,但它显然画了一个矩形。
这是我的渲染代码:
glClear(GL_COLOR_BUFFER_BIT);
glTranslatef(0,0,-0.1);
glBegin(GL_QUADS);
glVertex3f(0,0,0);
glVertex3f(1,0,0);
glVertex3f(1,1,0);
glVertex3f(0,1,0);
glEnd();
SDL_GL_SwapBuffers();
和 OpenGL Init 代码:
glClearColor(0,0,0,0.6f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(30,640.0/480.0,.3f,200.0);
glMatrixMode(GL_MODELVIEW);
为什么会这样?
最佳答案
我在您的代码中没有看到您设置 glViewport 的任何地方。我宁愿在你的 init 方法中写这样的东西:
glViewport(0,0,640,480); // Reset The Current Viewport
glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glLoadIdentity(); // Reset The Projection Matrix
// Calculate The Aspect Ratio Of The Window
gluPerspective(30.0f,(GLfloat)640/(GLfloat)480,0.3f,200.0f);
glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
glLoadIdentity();
同时检查第二个 Nehe tutorial它将帮助您开始使用 OpenGL 来绘制非常基本的东西,例如绘制三角形、正方形等图元...
关于c++ - OpenGL:GL_QUADS 不绘制正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11971192/