正在加载图片...
命令 值 GL ALPH gIClipPlane gDepthFunc GL DEF gLightmModel、 alight GL LIGHT1 GL LIGHTING gILightModel- alight GL LIGHTING GL LINE SMOOTH glinestipple GL LINE S TIPPLE GL NORMALIZE gIPolygonMode GL POLYGON SMOTH 部分利用 glEnableo和 glDisable0的函数和设定值 3.程序的基本结构 OpenGL程序的基本结构可分为三个部分 第一部分是初始化部分,主要是设置一些 OpenGL的状态开关,如颜色模式(RGBA或 ALPHA)的选择, 是否作光照处理(若有的话,还需设置光源的特性),深度检验,裁剪等等。这些状态一般都用函数 geTable(???), glDisable(???)来设置,???表示特定的状态。 第二部分设置观察坐标系下的取景模式和取景框位置及大小。主要利用了三个函数 函数 void glViewport(left, top, right, bottom):设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个角上 的坐标(以象素表示) 函数 void glortho( eft, right, bottom, top, near,fa):设置投影方式为正交投影(平行投影),其取景体积 是一个各面均为矩形的六面体 函数 void gluPerspective(owy, aspect, NEar,zFar):设置投影方式为透视投影,其取景体积是一个截头 锥体,在这个体积内的物体投影到锥的顶点 第三部分是 OpenGL的主要部分,使用 OpenGL的库函数构造几何物体对象的数学描述,包括点线面的 位置和拓扑关系,几何变换,光照处理等等。 以上三个部分是 OpenGL程序的基本框架,即使移植到使用MFC框架下的 Windows程序中,其基本 素还是这三个,只是由于 Windows自身有一套显示方式,需要进行一些必要的改动以协调这两种不同显示 简单的程序 程序5.1 #include <Gu/gl.h> include <Gu/glaux. h int main(int argc, char** argv) auxInit Display Mode(AUX_ SINGLE I Al auxInitPosition(0, 0, 500, 500) auxInitWindow(argv[o: gIClear Color(00,0.0.0.0,0.0);∥置背景色为黑色 glClear(GL_ COLOR BUFFER_BT;∥清除颜色缓冲区 glColor3f(1.0,1.0,1.0);∥设置象素颜色为白色 glMatrixMode(GL PROJECTION) glLoadldentityo glOrtho(-1.0,1.0,-1.0.1.0,-1.0.1.0) glBegin(GL POLYGON) glVertex2f(-0.5,-0.5); glVertex2f(-0.5, 0.5); gIVertex2f(0.5, 0.5) glVertex2f(0.5,-05 gIFlusho: 上面例子中,函数体内的前三条语句调用了 OpenGL辅助库( Auxiliary Library),其作用是一些初始化的 设置,具体的含义分别说明如下 void auxlnitWindow(GLbyte" title String); 计算机图形学第五章第139页共36页计算机图形学 第五章 第 139 页 共 36 页 部分利用 glEnable()和 glDisable()的函数和设定值 3. 程序的基本结构 OpenGL 程序的基本结构可分为三个部分: 第一部分是初始化部分,主要是设置一些 OpenGL 的状态开关,如颜色模式(RGBA 或 ALPHA)的选择, 是否作光照处理(若有的话,还需设置光源的特性),深度检验,裁剪等等。这些状态一般都用函数 glEnable(???), glDisable(???) 来设置,???表示特定的状态。 第二部分设置观察坐标系下的取景模式和取景框位置及大小。主要利用了三个函数: 函数 void glViewport(left,top,right,bottom):设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个角上 的坐标(以象素表示); 函数 void glOrtho(left,right,bottom,top,near,far):设置投影方式为正交投影(平行投影),其取景体积 是一个各面均为矩形的六面体; 函数 void gluPerspective(fovy,aspect,zNear,zFar):设置投影方式为透视投影,其取景体积是一个截头 锥体,在这个体积内的物体投影到锥的顶点。 第三部分是 OpenGL 的主要部分,使用 OpenGL 的库函数构造几何物体对象的数学描述,包括点线面的 位置和拓扑关系,几何变换,光照处理等等。 以上三个部分是 OpenGL 程序的基本框架,即使移植到使用 MFC 框架下的 Windows 程序中,其基本元 素还是这三个,只是由于 Windows 自身有一套显示方式,需要进行一些必要的改动以协调这两种不同显示 方式。 4. 一个简单的程序 程序 5.1.1 #include <GL/gl.h> #include <GL/glaux.h> int main(int argc, char** argv) { auxInitDisplayMode (AUX_SINGLE | AUX_RGBA); auxInitPosition (0, 0, 500, 500); auxInitWindow (argv[0]); glClearColor (0.0, 0.0, 0.0, 0.0); //置背景色为黑色 glClear(GL_COLOR_BUFFER_BIT); //清除颜色缓冲区 glColor3f(1.0, 1.0, 1.0); //设置象素颜色为白色 glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); } 上面例子中,函数体内的前三条语句调用了 OpenGL 辅助库(Auxiliary Library),其作用是一些初始化的 设置,具体的含义分别说明如下: void auxInitWindow(GLbyte* titleString);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有