#include <GL/glut.h>
void render(void);
void main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("first class");
glutDisplayFunc(render);
glutMainLoop();
}
void render(void)
{
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,0,2);
glVertex3f(0,0,2);
glVertex3f(0,1,2);
glEnd();
glFlush();
}
分析glVertex3f中的坐标值,可以得到以下结论:
1)原点在正中央;
2)照相机的位置在Z轴上(0,0,1)处往下看;
3)0.5实际对应的位置为窗口的一半处;
关于glut
1)opengl本身不创建窗口,又glut创建;
2)glut用5个函数来创建窗口;
关于缓冲区
1)glClearColor与glClear函数来完成颜色缓冲区的清除;
2)GL还有深度,累计和模板四个缓存区;所以还可以组合如要清空深度与颜色缓存区,可以这样做:
glClearColor();
glClearDepth();
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
关于glFlush
强制前面所有的命令执行,是不能缺少的。