#include// windows系统要加这个。因为下面2个头文件的一些宏是在这个文件中定义的#include #include //这两个头文件在OpenGL程序中几乎必加。//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>> 初始化 void myInit(void) { glClearColor(1.0,1.0,0.0,0.9); // 设置背景色:白色。前三个参数分别代表红绿蓝分量。 glColor3f(1.0f, 0.0f, 0.0f); // set the drawing color glPointSize(4.0); // 点的大小为4*4像素 glMatrixMode(GL_PROJECTION); // glLoadIdentity(); gluOrtho2D(0.0, 640.0, 0.0, 480.0);// 指定绘图时采用的坐标系统}//<<<<<<<<<<<<<<<<<<<<<<<< myDisplay >>>>>>>>>>>>>>>>> 绘制void myDisplay(void){ glClear(GL_COLOR_BUFFER_BIT); // 将屏幕清除为背景色 glBegin(GL_POINTS); glVertex2i(100, 50); // 这里我们画3个点。 glVertex2i(100, 130); glVertex2i(150, 130); glEnd(); glBegin(GL_POLYGON); glVertex2i(200, 50); // 这里我们画一个四边形 glVertex2i(200, 130); glVertex2i(350, 230); glVertex2i(350, 130); glEnd(); glFlush(); // send all output to display 把数据从缓冲区弄到屏幕上}//<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>void main(int argc, char** argv){ glutInit(&argc, argv); // ***对GLUT进行初始化 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA); // ***set display mode,单缓冲/双缓冲,颜色索引模式,深度等 glutInitWindowSize(640,480); // ***设置窗口大小 glutInitWindowPosition(0, 150); // ***设置窗口位置 glutCreateWindow("my first attempt"); // ***创建窗口 glutDisplayFunc(myDisplay); // 显示事件回调函数 myInit(); glutMainLoop(); // ***启动程序,检测事件并进行处理}
目前我是根据以下2本书进行学习:
计算机图形学——用OpenGL实现 2nd edition
OpenGL编程指南 原书第6版