




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020 1 16 1 第二章 2020 1 16 2 2 6OpenGL图形软件包 OpenGL的主要功能OpenGL的绘制流程OpenGL的基本语法OpenGL的程序实例 2020 1 16 3 OpenGL图形软件包 OpenGL是SGI SiliconGraphicsInc 公司对IRISGL进行改进 扩展可移植性 形成的一个跨平台开放式图形编程接口 目前 OpenGL标准由1992年成立的独立财团OpenGLArchitectureReviewBoard ARB 以投票方式产生 并制成规范文档公布 2020 1 16 4 OpenGL的主要功能 模型绘制模型观察颜色模式光照应用图像效果增强位图和图像处理纹理映射实时动画交互技术 2020 1 16 5 OpenGL的绘制流程 工作方式 一个完整的窗口系统的OpenGL图形处理系统的结构为 最底层为图形硬件 第二层为操作系统 第三层为窗口系统 第四层为OpenGL 最上面的层为应用软件 图2 34OpenGL图形处理系统在计算机系统中的层次结构 2020 1 16 6 OpenGL的绘制流程 流水线 图2 35一条简化的OpenGL绘制流水线 包括命令 顶点数据和纹理等数据的OpenGL命令将放在命令缓冲区中 对几何顶点数据进行必要的变换 光照计算并进行投影后进入光栅化流程 根据几何形状 颜色及纹理数据生成图像的帧缓存地址和像素点值 结果置入帧缓冲存储器中 注意 只有当缓冲区被清空时 缓冲区中的命令和数据才会传递给流水线的下一个阶段 OpenGL命令才会得到执行 2020 1 16 7 OpenGL的基本语法 相关库 OpenGL核心库 gl115个函数OpenGL实用程序库 glu43个函数OpenGL编程辅助库 aux31个函数OpenGL实用程序工具包 OpenGLutilitytoolkit GLUT glut30多个函数Windows专用库 wgl6个函数 2020 1 16 8 OpenGL的基本语法 命名规则 OpenGL函数都遵循一个命名约定 即采用以下格式 例如函数glColor3f gl表示这个函数来自库gl h 根命令Color表示该函数用于颜色设定 3f表示这个函数采用了三个浮点数参数 符号常量的表示 GL开头 下划线 分开 大写 例如 GL RGB GL POLYGON等 2020 1 16 9 OpenGL的基本语法 数据类型 表2 2OpenGL的数据类型 2020 1 16 10 OpenGL程序实例 头文件包含 利用OpenGL实现图形绘制 首先要引入OpenGL核心库以及其他需要使用的库的头文件 glut保证了gl h和glu h被正确包含 include include 2020 1 16 11 OpenGL程序实例 窗口管理 初始化 glutInit 创建窗口 glutCreateWindow 设定窗口的显示模式 glutInitDisplayMode 指定窗口的位置和大小 glutInitWindowPosition和glutInitWindowSize 指定窗口的显示内容函数 glutDisplayFunc 运行框架 glutMainLoop 2020 1 16 12 OpenGL程序实例 绘制图形 指定窗口背景色 glClearColor 颜色管理 使用RGB颜色模型 一种颜色用红 绿 蓝三种颜色成分混合而成 每种颜色成分使用0 0到1 0之间的任意有效浮点数来表示颜色值 见下页 2020 1 16 13 OpenGL程序实例 绘制图形 表2 2OpenGL的一些常用混合色 2020 1 16 14 OpenGL程序实例 绘制图形 刷新窗口的缓冲区glClear GL COLOR BUFFER BIT 设定投影参数 将三维图形投影到显示窗口 glMatrixMode GL PROJECTION gluOrtho2D 0 0 200 0 0 0 150 0 绘制图形glRectf 50 0f 100 0f 150 0f 50 0f 2020 1 16 15 第三章 2020 1 16 16 3 4OpenGL实现橡皮筋技术 橡皮筋技术的实现方法利用颜色的异或操作 对原有图形并不是擦除 而是再绘制一条同样的直线段并与原图形进行异或操作 此时原图形会从屏幕上消失 利用双缓存技术 绘制图形时分别绘制到两个缓存 交替显示 2020 1 16 17 OpenGL实现橡皮筋技术 鼠标实现鼠标响应函数glutMouseFunc鼠标移动相应函数glutMotionFuncglutPassiveMotionFunc 2020 1 16 18 键盘实现键盘相应函数glutKeyboardFunc OpenGL实现橡皮筋技术 2020 1 16 19 3 5OpenGL实现拾取操作 设置拾取缓冲区voidglSelectBuffer GLsizein GLunint buff 进入选择模式GLintglRenderMode GLenummode 2020 1 16 20 20 OpenGL实现拾取操作 名字堆栈操作初始化名字堆栈 glInitNames 将一个名字压入堆栈 glPushName 替换名字堆栈的栈顶元素 glLoadName 将栈顶元素弹出 glPopName 2020 1 16 21 21 设置合适的变换过程gluPickMatrix xPick yPick widthPick heightPick vp 为每个图元分配名字并绘制切换回渲染模式分析选择缓冲区中的数据 OpenGL实现拾取操作 2020 1 16 22 3 6OpenGL中的菜单功能 菜单注册函数glutCreateMenu ProcessMenu 在菜单中加入菜单项voidglutAddMenuEntry char name GLintvalue 将菜单与某个鼠标按键关联voidglutAttachMenu button 2020 1 16 23 第四章 2020 1 16 24 OpenGL中层次模型的实现 显示列表的创建glNewList listID listMode glutSolidCube 2 0 glEndList 显示列表的执行voidglListBase GLuintoffsetValue 2020 1 16 25 多级显示列表OpenGL支持创建多级显示列表 即在glNewList和glEndLsit函数对之间允许调用glCallList函数来执行其他显示列表 显示列表的删除voidglDeleteLists GLuintlistID GLsizeirange OpenGL中层次模型的实现 2020 1 16 26 26 GLUT库中的多面体函数 OpenGL中的实体模型函数 表4 1GLUT生成规则多面体的函数 2020 1 16 27 27 GLUT库中的二 三次曲面绘制实体或线框球面voidglutSolidSphere glutWireSphere GLdoubleradius GLintslices GLintstacks 绘制实体或线框圆锥面voidglutSolidCone glutWireCone GLdoubleradius GLdoubleheight GLintslices GLintstacks OpenGL中的实体模型函数 2020 1 16 28 28 绘制实体或线框圆环voidglutSolidTorus glutWireTorus GLdoubleinnerRadius GLdoubleouterRadius GLintslices GLintstacks 绘制实体或线框茶壶voidglutSolidTeapot glutWireTeapot GLdoublesize OpenGL中的实体模型函数 2020 1 16 29 29 GLU二次曲面函数定义一个二次曲面GLUquadricObj sphere 激活二次曲面绘制器sphere gluNewQuadric 指定二次曲面的绘制方式gluQuadricDrawStyle sphere GLU LINE OpenGL中的实体模型函数 2020 1 16 30 30 绘制二次曲面gluSphere sphere radius slices stacks gluCylinder sphere baseRadius topRadius height slices stacks gluDisk sphere innerRadius outerRadius slices stacks OpenGL中的实体模型函数 2020 1 16 31 4 3非规则对象的表示 分形几何形状语法基于分数维理论的随机模型基于物理的模型粒子系统模型数据场可视化 2020 1 16 32 OpenGL中层次模型的实现 显示列表的创建glNewList listID listMode glutSolidCube 2 0 glEndList 显示列表的执行voidglListBase GLuintoffsetValue 2020 1 16 33 多级显示列表OpenGL支持创建多级显示列表 即在glNewList和glEndLsit函数对之间允许调用glCallList函数来执行其他显示列表 显示列表的删除voidglDeleteLists GLuintlistID GLsizeirange OpenGL中层次模型的实现 2020 1 16 34 第五章 2020 1 16 35 5 8在OpenGL中绘图 点的绘制直线的绘制多边形面的绘制OpenGL中的字符函数OpenGL中的反走样 2020 1 16 36 点的绘制 点的绘制glBegin GL POINTS glVertex3f 0 0f 0 0f 0 0f glVertex3f 10 0f 0 0f 0 0f glEnd 点的属性 大小 voidglPointSize GLfloatsize 2020 1 16 37 a GL LINES画线模式 b GL LINE STRIP画线模式 c GL LINE LOOP画线模式图5 57OpenGL画线模式 直线的绘制 直线的绘制模式GL LINESGL LINE STRIPGL LINE LOOP 2020 1 16 38 直线的绘制 直线的属性线宽voidglLineWidth GLfloatwidth 线型glEnable GL LINE STIPPLE glLineStipple GLintfactor GLushortpattern 2020 1 16 39 直线的绘制 图5 58画线模式用于构造线段 2020 1 16 40 多边形面的绘制 三角形面的绘制GL TRIANGLESGL TRIANGLE STRIPGL TRIANGLE FAN四边形面的绘制GL QUADSGL QUADS STRIP多边形面的绘制 GL POLYGON 2020 1 16 41 多边形面的绘制 多边形面的绘制规则所有多边形都必须是平面的 多边形的边缘决不能相交 而且多边形必须是凸的 解决 对于非凸多边形 可以把它分割成几个凸多边形 通常是三角形 再将它绘制出来 2020 1 16 42 多边形面的绘制 问题 轮廓图形状态会看到组成大表面的所有小三角形 处理OpenGL提供了一个特殊标记来处理这些边缘 称为边缘标记 glEdgeFlag True glEdgeFlag False 42 2020 1 16 43 多边形面的属性 多边形面的正反属性 绕法 指定顶点时顺序和方向的组合称为 绕法 绕法是任何多边形图元的一个重要特性 一般默认情况下 OpenGL认为逆时针绕法的多边形是正对着的 glFrontFace GL CW 2020 1 16 44 多边形面的属性 多边形面的颜色glShadeModel GL FLAT 用指定多边形最后一个顶点时的当前颜色作为填充多边形的纯色 唯一例外是GL POLYGON图元 它采用的是第一个顶点的颜色 glShadeModel GL SMOOTH 从各个顶点给三角形投上光滑的阴影 为各个顶点指定的颜色之间进行插值 2020 1 16 45 多边形面的属性 多边形面的显示模式glPolygonMode GLenumface GLenummode 参数face用于指定多边形的哪一个面受到模式改变的影响 参数mode用于指定新的绘图模式 45 2020 1 16 46 多边形面的属性 多边形面的填充多边形面既可以用纯色填充 也可以用32 32的模板位图来填充 voidglPolygonStipple constGLubyte mask glEnable GL POLYGON STIPPLE 46 2020 1 16 47 多边形面的属性 多边形面的法向量法向量是垂直于面的方向上点的向量 它确定了几何对象在空间中的方向 在OpenGL中 可以为每个顶点指定法向量 voidglNormal3 bsidf TYPEnx TYP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年感控医生护士院感知识培训考试试题(附答案)
- 临床科室危急值考试题库(附答案)
- cad毕业论文题目
- 毕业论文有专业规定吗
- 2025年汽车融资租赁合作协议书
- 2024年院感培训考核试题(附答案)
- 销售类专业毕业论文
- 物流专业仓储毕业论文
- 2025医院医疗纠纷防范管理制度
- 2025年公用设备工程师(给排水)专业技术及理论知识考试题库与答案
- 计算机组装与维护完整版课件(全)
- 儿科常见疾病双向转诊指南
- 中国传媒大学-电视播音员主持人形象设计与造型(第2版)-课件
- 一键自动生成spccpkMSAPPK数据工具
- (知识扩展)城市轨道交通CBTC系统功能课件
- 装表接电课件(PPT 86页)
- 病例报告表(CRF)模板
- 脑卒中二级预防的指南
- 德国申克振动筛
- 工程现场踏勘情况记录表(模板)
- 常用危险化学品储存禁忌物配存表
评论
0/150
提交评论