《OpenGL介绍》-课件设计(公开).ppt

《OpenGL介绍》-课件设计(公开).ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 OpenGL 6.1 基本介绍 6.1.1 背景情况 6.1.2 OpenGL的主要功能 6.1.3 OpenGL的绘制流程和原理 6.1.4 VC++开发OpenGL绘图程序 6.1.5 OpenGL的缓冲区 6.2 基本图形的生成 6.2.1 OpenGL生成基本图形 OpenGL生成点 OpenGL生成直线 OpenGL生成直线 OpenGL生成区域图形 多边形面的绘制 6.2.2 OpenGL的颜色缓冲区 6.3 OpenGL坐标变换机制 6.3.1 OpenGL中与变换有关的数据结构 6.3.2 OpenGL中的ModelView变换机制 6.3.3 OpenGL中的Model变换 6.3.4 OpenGL中的View变换 6.3.5 OpenGL中的投影 6.3.5 OpenGL中的投影 6.3.6 OpenGL中的深度缓冲区 6.3.7 OpenGL中的反变换 6.4.1 用OpenGL生成真实感图形 6.4.2 OpenGL的光照环境设置方法 6.4.3 OpenGL的物体材质设置方法 采用RGB三基色表示: void glLight*(GLenum light, GLenum pname, TYPE param); light:光源标识,GL_LIGHT0、GL_LIGHT1、…、GL_LIGHT7 pname:对光源的哪个属性进行设置 param:pname所标识属性项的期望值 glLight*:glLighti、 glLightf、 glLightiv、glLightfv TYPE:int、float、int*、float* glEnable(GL_LIGHTING):打开光照计算 glEnable(GL_LIGHTi):打开第i个光源 glDisable(GL_LIGHTi):关闭第i个光源 由方向一致的多边形构成完全闭合的曲面,其背面多边形总是被正面多边形所遮挡。因此剔除背面多边形可以极大地提高几何体的绘制速度。同样,如果处在几何对象内部,只是背面多边形是可见时,则剔除正面多边形。 利用函数glCullFace(),选择剔除正面或背面多边形,在这之前需利用glEnable()激活剔除处理。 void glCullFace(GLenum mode); mode的取值分别为: ? GL_FRONT:剔除正面 ? GL_BACK:剔除背面(缺省值) ??????GL_FRONT_AND_BACK:剔除全部 利用下面函数激活或去激活多边形剔除: ???? glEnable(GL_CULL_FACE); ??? ?glDisable(GL_CULL_FACE); OpenGL提供两种颜色模式:RGB(RGBA)模式和颜色索引模式。在RGBA模式下所有颜色的定义用RGB三个值来表示,有时也加上Alpha值(表示透明度)。RGB三个分量值的范围都在0和1之间。颜色索引模式下每个像素的颜色是用颜色索引表中的某个颜色索引值表示。三维图形处理中要求阴影、光照、雾化、融合等效果,RGBA 的效果比颜色索引模式好。 使用时,OpenGL在显示缓冲区中存储了其它图形的绘图信息,必须先清除缓冲区,以免影响绘图效果。 函数:void glClearColor(red, green, blue, alpha); 另外,也可以使用函数:void glClear(mask);清除标志的缓冲区。注意,这个函数还可以清除其他缓冲区,由参数mask来控制。可选的mask参数如下表: 缓冲区 名称 颜色缓冲区 GL_COLOR_BUFFER_BIT 深度缓冲区 GL_DEPTH_BUFFER_BIT 累加缓冲区 GL_ACCUM_BUFFER_BIT 模板缓冲区 GL_STENCIL_BUFFER_BIT 表:缓冲区名称 也可用glClearColor()、glClearDepth()、glClearIndex()、glClearStencil()、glClearAcc()为各自对应的缓冲区赋值。若要同时清除多个缓冲区,使用上表中所列的mask位的”或”(OR)组合,在速度上要比使用多次调用glClear()要快得多。 在绘制图形前,通常要先设定颜色或颜色方式,这样有利于达到较高的绘图性能。设置颜色的常用命令是:glColor*()。 下面的代码就可以生成漂亮的三角形 glBegin(GL_TRIANGLES); glColor3f(1.0, 0.0, 0.0); //红色 glVertex3f(-1.0, 0.0, 0.0); glColor3f(0.0, 1.0, 0.0); //绿色 glVertex3f(0.0, 1.0, 0.0); g

文档评论(0)

沙卡娜 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档