



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
glut函数解析 1:显示模式:glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);/创建窗口时使用单缓冲,并且使用RGB颜色模型。和GLUT_SINGLE对应的有GLUT_DOUBLE双缓冲,主要用于动画。 2:创建OpenGL窗口:glutCreateWindow(窗口名); 3:回调函数: glutDisplayFunc(RenderScene); glutReshapeFunc(ChangeSize);分别用于指定当前窗口的显示回调函数和再整型回调函数,回调函数是为了响应某种事件而响应的函数,是由程序员编写的。需要绘制窗口就要调用glutDisplayFunc();而当窗口发生变化时就调用glutReshapeFunc(); 4;执行函数:glutMainLoop();/这个函数让GLUT框架开始运行,所有设置的回调函数开始运行,直到用户程序终止。 5:OpenGL初始化:SetupRC() 6:glClearColor(1.0f,1.0f,1.0f,1.0f);/设置清除窗口时使用的颜色,即设定窗口内的背景色。 7:定义视区:void glViewport(GLint x,GLint y,GLsizei width,GLsizei height);/在这里x和y参数指定窗口的左下角,width和height参数以像素为单位指定宽度和高度。通常情况下x和y都是0,但是可以用视区来渲染窗口不同区域中的多幅图形。 8:利用函数glOrtho定义修剪区; void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);/函数在3D坐标系中定义了一个修剪空间,left和right指定X轴上显示的最小和最大坐标;bottom和top用于Y轴;near和far参数用于Z轴,通常是远离观察者的负值。 9:glColor3f(1.0f,0.0f,0.0f);/用于设置当前绘图颜色,即调用它后,绘图操作(包括画线和填充)所用的颜色均为设置的当前颜色。 10:glRectf(100.0f,150.0f,150.0f,100.0f);/使用这个函数来绘制一个矩形,参数表示矩形的左上角点和左下角点的坐标。11:刷新队列:glFlush();/用于让所有的尚未执行的命令都被执行。12:glutSwapBuffers();/清空命令缓冲区并交换帧缓存。13:glBegin(GL_POINTS);/指定绘制图元的类型14:glEnd();/结束绘制图元的操作。15:glVertex函数用于指定顶点,它可以有2,3,4个参数,两个参数是二维坐标,三个参数是三维坐标,四个参数是齐次坐标。16:在OpenGL中点的大小默认是一个像素点,可以用函数glPointSize修改点的大小:void glPointSize(GLfloat size);17:在OpenGL中可以用glLineWidth指定线宽: void glLineWidth(GLfloat width);18:需要画虚线时,这时需要调用函数:glEnable(GL_LINE_STIPPLE);然后,函数glLineStipple(GLint factor,GLushort pattern);/pattern是一个16位的值,指定了画线时所用的模式。每一位代表线段一部分是开还是关。factor参数指定模式的宽度,即每次设置几个像素是开着的还是关者的。19:使用glDisable(GL_LINE_STIPPLE);来关闭虚线模式。20:在glBegin(参数);/当参数是GL_TRIANGLES来绘制三角形,使用GL_TRIANGLE_STRIP绘制几个相连的三角形,使用GL_TRIANGLE_FAN模式可以绘制一组相连的三角形(构成扇形)。21;关于图形的绕法。可以使用glFrontFace(参数);在OpenGL中逆时针默认为多边形的正向,可以改变参数修改为顺时针,GL_CW为顺时针,GL_CCW为逆时针。22:void glShadeModel(GLenum mode);/设置明暗处理模式,当参数mode为GL_FLAT或者GL_SMOOTH,分别表示平面明暗处理和光滑明暗处理23:多边形的模式。多边形不是必须使用当前颜色填充的。默认情况下绘制的多边形是实心的,但可以通过制定多边形的模式,可以绘制成轮廓或者是点。函数glPolygonMode允许把多边形渲染为填充的实心,轮廓线或者是点。另外还可以把这种渲染模式应用到多边形的两面或者是正面或者背面。glPolygonMode(GLenum face,GLenum mode);/face指定是哪一面,有GL_FRONT,GL_BACK,GL_FRONT_AND_BACK.mode用于新的绘图模式。GL_FILL是填充的多边形,GL_LINE生成多边形的轮廓,而GL_POINT只画出点。24:glEnable(GL_DEPTH_TEST);启动深度测试功能25:glDisable(GL_DEPTH_TEST);/关闭深度测试功能。26:为了使深度缓冲区正常完成深度测试功能,在每次渲染场景时,必须清除深度缓冲区: glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);27:平移变换函数如下: viod glTranslated(GLdouble x,GLdouble y,GLdouble z); void glTranslatef(GLfloat x,GLfloat y,GLfloat z);三个参数分别表示沿三个坐标轴的正向平移的偏移量28:旋转变换函数如下: void glRotated(GLdouble angle,GLdouble x,GLdouble y,GLdouble z);还有一个和上面的第一个一样,参数变为实形。函数中的第一个参数是表示目标沿从原点到指定点的方向矢量逆时针旋转的角度,后三个参数是指定旋转方向矢量的坐标。29:缩放变换函数如下:void glScaled(GLdouble x,GLdouble y,GLdouble z);/还有一个原形是实形,三个参数分别表示沿三个坐标轴的缩放的比例因子。说明当参数为负值时表示对目标做相应坐标轴的反射变换。30:glutSolidSphere(1.0f,15,15);/绘制一个球,半径为1.0f,位置为(15,15)。31;glMatriMode(GLenum mode);/设置当前操作矩阵,参数mode用于确定将那个矩阵堆栈用于矩阵操作,它的取值有:GL_MODELVIEW(模型视图矩阵),GL_PROJECTION(投影矩阵堆栈),GL_TEXTURE(纹理矩阵堆栈),一旦设置了当前操作矩阵,他就保持为活动的矩阵,直到修改为止。32;glLoadIdentiy();/作用是给当前矩阵加载上单位矩阵。33:void glPushMatrix(viod);/将当前矩阵压入当前矩阵堆栈,常用于保存当前变换矩阵。34;void glPopMatrix(void);/将最后一个矩阵弹出当前矩阵堆栈。35:正射投影(平行投影)函数有; void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);/创建一个正射投影矩阵,并用这个矩阵乘以当前矩阵。其中近裁剪平面是一个矩形,矩形的左下角三维坐标是(left,bottom,-near),右上角是(right,top,-near),同理有右下角,左上角坐标。所有的near和far同时为正或者为负。 void glutOrtho2D(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top);/主要用于二维图像到二维图像的投影。36:透视投影函数; void glFrustum(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);/创建一个透视投影矩阵,并且用这个矩阵乘以当前矩阵。他的参数只定义近裁剪平面的左下角和右上角点的三维坐标。最后一个参数far是平面的Z负值,其他的坐标根据透视原理自动生成。 void glutPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble Zfar);/创建一个对称透视视景体。37:glEnable(GL_LIGHTING);/启动光照模型38:glDisable(GL_LIGHTING);/关闭当前光照39:glLightModelfv(GL_LIGHT_MODEL_AMBIENT,数组名);/启动全局环境光。漫射光是Diffuse light,镜面光是Specular light.40:设置材质属性,glMaterialfv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,material_ambient);/指定材质的前面具有材质属性,也可指定背面GL_BACK,也可以是两面都具有材质属性GL_FRONT_AND_BACK,最后一个参数是一个数组名。41:启动颜色跟踪; glEnable(GL_COLOR_MATERIAL); 使用glColorMaterial函数来指定多边形的哪一面使用颜色跟踪。函数如下:glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);42:使用光源;OpenGL提供了8个独立光源,他们可以放在场景中的任何地方,当光源放在无穷远就形成了平行光线。每个光源包含了环境光,漫反射和镜面光的三个成分,这些属性都是通过glLight来指定的。 GLfloat light0_position=1.0f,1.0f,1.0f,0.0f; glLightfv(GL_LIGHT0,GL_POSITION,light0_position);指定了光源所在的位置,指定光源位置的数组有四个值,当最后一个值为0.0f时,则表示光源位于数组指定方向的无穷远处,即光源发出的是平行光,如果是1.0f则表示指定的坐标就是光源的位置。43:使光源有效的调用函数: glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);44:关闭光源的函数: glDisable(GL_LIGHTING);45:聚光源;利用函数glLight使用参数GL_SPOT_CUTOFF定义聚光光锥的轴与中心线的夹角,缺省时为参数为180.0,即向所有方向发射,无聚光效果。启动聚光效果时,聚光截止角一般限制在0-90度之间。 glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,45.0);/定义聚光截止角为45度。46:定义聚光方向:聚光方向决定聚光光锥的轴,它使用齐次坐标定义,缺省为(0.0,0.0,-1.0),即指向z负轴。聚光方向函数是通过函数glLightfv使用参数GL_SPOT_DIRECTION定义。例如:GLfloat spot_direction=-1.0f,-1.0f,0.0f;glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spot_direction);47:定义聚光指数。参数GL_SPOT_EXPONENT控制光的集中程度,光锥中心的光强最大glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,2.0);48:定义衰减因子参数:常用的衰减因子有常量因子(GL_CONSTANT_ATTENUATION、线性因子(GL_LINEAR_ATTENUATION)和二次因子(GL_QUADRATIC_ATTENUATION),其中缺省的常数衰减因子是1.0,其余的两个因子是0.0.用户可以自己定义这些值,例如: glLightf(GL_LIGHT0,GL_CONSTANT_ATTENUATION,2.0);49:镜面反射率:镜面反射率决定了材质表面对于镜面光反射的成分 GLfloat mat_specular=1.0f,1,0f,1.0f,1.0f; glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);/定义了其后的绘制的表面几乎反射了所有的入射镜面光50:镜面指数:高度的镜面光和材质的镜面反射率使物体颜色更亮 glMaterialfv(GL_FRONT,GL_SHININESS,128);/128为聚光指数。51:辐射光:辐射光可以使物体看起来发出某种颜色的光,通过定义一个值,可以达到这种效果。 GLfloat mat_emission=0.3f,0.3f,0.5f,0.0f; glMaterialfv(GL_FRONT,GL_EMISSION,mat_emission);52:双面光照:使用glLightModel(LIGHT_MODEL_TWO_SIDE,GL_TURE);/启动双面光照。53:glutInit();/对GLUT进行初始化。54:glutInitWindowPos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售咨询运营方案范文
- 云浮商场促销活动策划方案
- 某私立学校关于人工智能教育教学试点工作总结报告
- 教代会民主评议学校领导干部暂行办法
- 农业咨询调查方案范文
- 大连立体植物墙施工方案
- 医疗健康产业新动能前景展望
- 电商平台电商生态圈构建
- 关于举办第六届高效先进破碎筛分与磨矿分级技术交
- 巡察财务方面存在的问题及整改措施
- 职工干部禁毒知识培训课件
- 2026届新高考地理热点冲刺复习全球气候变化及影响
- 供销社招聘考试题及答案
- 2025中煤天津设计工程有限责任公司公开招聘6人笔试参考题库附带答案详解
- 无人机维修安全知识培训课件
- 机械设备维护保养详细操作手册
- 村卫生室消防知识培训课件
- 智能控制技术发展前景分析
- T-CCASC 0043-2024 氯碱工业数字化车间建设指南 电解
- 2024年西安医学院第一附属医院招聘真题
- 国企纪委面试题目及答案
评论
0/150
提交评论