Open GL常量和数据 中国斜学我术大学 类型 University of Science and Technology of China ·头文件gl.h,glu.h和glut.h中定义大量的常量 一例如: glEnable(GL DEPTH TEST); glClear(GL COLOR BUFFER BIT); -注意:include<GL/gIut.h>自动将其他两个头 文件包含到程序中 ·头文件中定义了OpenGL数据类型: GLfloat,GLdouble,... 3>
OpenGL常量和数据 类型 • 头文件gl.h, glu.h和glut.h中定义大量的常量 – 例如: glEnable(GL_DEPTH_TEST); glClear(GL_COLOR_BUFFER_BIT); – 注意:#include <GL/glut.h>自动将其他两个头 文件包含到程序中 • 头文件中定义了OpenGL数据类型: GLfloat, GLdouble,… 27
3.1 Open GL简介 中国斜草我术大学 University of Science and Technology of China ·3.1.1图形API的发展 ·3.1.2 OpenGL的体系结构 ·3.1.3 OpenGL的函数 ·3.1.4一个简单例子 ·3.1.5安装编译说明
3.1 OpenGL简介 • 3.1.1 图形 API的发展 • 3.1.2 OpenGL的体系结构 • 3.1.3 OpenGL的函数 • 3.1.4 一个简单例子 • 3.1.5 安装编译说明 29
个简单程序 中国斜学我术大学 University of Science and Technology of China ·在黑色背景上画一个白色矩形 simpl 30
一个简单程序 • 在黑色背景上画一个白色矩形 30
simple.c 中国斜草我术大学 University of Science and Technology of China #include <GL/glut.h> void display(){ glclear(GL COLOR BUFFER BIT); glBegin(GL QUAD); g1 Vertex2d(-0.5,-0.5); g1 Vertex.2d(-0.5,0.5): g1 ertex2d(0.5,0.5); g1 Vertex2d(0.5,-0.5); glEnd(); glFlush(); int main(int argc,char*argv[]){ glutInit(&argc,argv); glutCreatewindow("simple"); glutDisplayFunc(display); glutMainLoop(); 31
simple.c #include <GL/glut.h> void display(){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_QUAD); glVertex2d(-0.5, -0.5); glVertex2d(-0.5, 0.5); glVertex2d(0.5, 0.5); glVertex2d(0.5, -0.5); glEnd(); glFlush(); } int main(int argc, char* argv[]) { glutInit(&argc, argv); glutCreateWindow(“simple"); glutDisplayFunc(display); glutMainLoop(); } 31
函数 中国斜学我术大草 niversity of Science and Technology of Chin 初始化GLUT void glutInit(int argc,char *argv) 创建窗口:窗口标题为title int glutCreateWindow(char title) ·注册显示回调函数:窗口需要重绘时调用func void glutDisplayFunc(void (*func)(void)) 。 事件处理循环:main函数最后一条语句 void glutMainLoop() ·清空帧缓冲区 void glclear(GLbitfield mask) 。 图元定义:mode可取GL POINTS、GL LINES、GL POLYGON等 void glBegin(Glenum mode)/开始mode型图元定义 void glEnd() /1结束顶点序列 强制执行OpenGL命令 void flush() 32
函数 • 初始化GLUT void glutInit(int * argc, char ** argv) • 创建窗口:窗口标题为title int glutCreateWindow(char * title) • 注册显示回调函数:窗口需要重绘时调用func void glutDisplayFunc(void (*func)(void)) • 事件处理循环:main函数最后一条语句 void glutMainLoop() • 清空帧缓冲区 void glClear(GLbitfield mask) • 图元定义:mode可取GL_POINTS、GL_LINES、GL_POLYGON等 void glBegin(Glenum mode) // 开始mode型图元定义 void glEnd() // 结束顶点序列 • 强制执行OpenGL命令 void flush() 32