机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础

上传人:E**** 文档编号:89159839 上传时间:2019-05-19 格式:PPT 页数:47 大小:373.51KB
返回 下载 相关 举报
机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础_第1页
第1页 / 共47页
机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础_第2页
第2页 / 共47页
机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础_第3页
第3页 / 共47页
机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础_第4页
第4页 / 共47页
机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础》由会员分享,可在线阅读,更多相关《机械工程CAD基础 第2版 教学课件 ppt 作者 熊鹰 肖世德 王小强编著 第9章 OpenGL开发基础(47页珍藏版)》请在金锄头文库上搜索。

1、机械工程CAD基础,第9章 OpenGL开发基础,2019/5/19,机械工程CAD基础,2,人类生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,必须能在三维空间描绘这些物体。三维表现技术能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化技术。 可视化技术赋予人们一种仿真的、三维的并且具有实时交互的能力,这样人们可以在三维图形世界中用以前不可想象的手段来获取信息或发挥自己创造性的思维。OpenGL可以完成上述功能,是事实上的三维图形标准。,2019/5/19,机械工程CAD基础,3,在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世

2、界中却必须以二维平面物体的形式表现出来。实际上,从三维空间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤: 1)将相机置于三角架上,让它对准三维景物(视点变换,Viewing Transformation); 2)将三维物体放在适当的位置(模型变换,Modeling Transformation); 3)选择相机镜头并调焦,使三维物体投影在二维胶片上(投影变换,Projection Transformation); 4)决定二维像片的大小(视口变换,Viewport Transformation)。,2019/5/19,机械工程CAD基础,4,9.1 OpenGL的基本概念,Ope

3、nGL实质是一种图形与硬件的接口,包括了100多个图形函数,开发者可以用这些函数来建立三维模型和三维实时交互。与其它图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数。因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板设计出三维图形以及三维交互软件。,2019/5/19,机械工程CAD基础,5,OpenGL强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其它不同格式的数据源,如DXF格式的文件等。这种灵活性极大地节省了开发者的时间,提高了软件开发效率。,2019/5/19,机械工程C

4、AD基础,6,长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十分密切的函数费脑筋,而OpenGL正是提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序。,2019/5/19,机械工程CAD基础,7,9.1.1 OpenGL工作流程,2019/5/19,机械工程CAD基础,8,数据处理 将所有数据(包括几何顶点数据和图像像素数据)存储在一个显示列表中,计算顶点和像素的坐标、纹理、法向向量数据,近似的绘制几何曲线和曲面。 顶点和图元的处理 对顶点进行变化和光照处理;对图元进行裁减以适合视区大小。

5、这一阶段的处理结果,被存储为纹理内存以用于光栅操作阶段,或者采取同几何数据一样的形式进行光栅化,并将结果融入帧缓存中;,2019/5/19,机械工程CAD基础,9,光栅化操作 光栅化包含几何和物理映射两部分。几何操作是将图元转化为二维图像;物理操作是计算图像每个点的颜色和深度等信息;通过几何操作和物理操作的二维描述,产生一系列的帧缓存地址和相关数值,并将所有片段作为像素存储在帧缓存中,写纹理内存,使用纹理映射,最后光栅化成像素段; 对像素段进行处理,雾化效果生成,反走样处理,抖动处理等帧缓冲区操作。,2019/5/19,机械工程CAD基础,10,9.1.2 OpenGL具体功能,1. 模型绘制

6、 OpenGL能够绘制点、线和多边形。应用这些基本的形体,可以构造出几乎所有的三维模型。OpenGL通常用模型的多边形的顶点来描述三维模型。,2019/5/19,机械工程CAD基础,11,2. 模型观察 在建立了三维景物模型后,就需要用OpenGL描述如何观察所建立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型的坐标变换在是观察者能够在视点位置观察与视点相适应的三维模型场景。在整个三维模型的观察过程中,投影变换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。最后的视窗变换则对模型的景象进行剪取缩放,即决定整个三维模型在屏幕上的图形。,2019/5/1

7、9,机械工程CAD基础,12,3. 颜色模式的指定 OpenGL应用了一些专门的函数来指定三维模型的颜色。程序开发者可以选择两个颜色模式,即RGBA模式和颜色索引模式。在RGBA模式中,颜色直接由RGB值来指定;在颜色索 引模式中,颜色值则由颜色索引表中的一个颜色的索引值来指定。开发者还可以选择平面明暗处理和平滑明暗处理两种对整个三维场景进行着色。,2019/5/19,机械工程CAD基础,13,4. 光照处理 用OpenGL绘制的三维模型必须加上光照才能更加与客观物体相似。OpenGL提供了管理四种光(辐射光、环境光、镜面光和漫反射光)的方法,另外还可以指定模型表面的反射特性,即材质定义。,2

8、019/5/19,机械工程CAD基础,14,5. 图像效果增强 OpenGL提供了一系列的增强三维场景的图像效果的函数,这些函数通过反走样、融合和雾化来增强图像效果,雾能使影象从视点到远处逐渐褪色,更接近事实。 6. 位图和图像处理 OpenGL还提供了专门对位图和图像进行操作的函数。,2019/5/19,机械工程CAD基础,15,7. 实时动画 为了获得平滑的动画效果,需要先在内存中生成下一幅图像,然后把已经生成的图像从内存显示到屏幕上,这就是OpenGL的双缓存技术。OpenGL提供了双缓存技术的一系列函数。 8. 交互技术 目前有许多图形应用需要人机交互,OpenGL提供了方便的三维图形

9、人机交互接口,用户可以选择修改三维场景中的物体。,2019/5/19,机械工程CAD基础,16,9.1.3 OpenGL坐标系,(1)物体坐标系。OpenGL的场景实际就是它的物体空间,OpenGL的物体和其他对象都放在这个空间之中的。物体空间所使用的坐标系称为物体坐标系(又称为WCS世界坐标系)。OpenGL的物体坐标系是遵循右手规则的直角实数坐标系。缺省情况下,物体坐标系的原点在窗口的正中央,窗口所在的平面是坐标系的X-Y平面。坐标系的X坐标轴指向窗口的右方,轴指向上方,Z轴指向操作者。几何顶点的三个坐标分量就是对应于这个坐标系的。,2019/5/19,机械工程CAD基础,17,(2)观察

10、坐标系。观察坐标来自观察者的观察点。观察坐标系是物体坐标系与模视矩阵(Model_View Matrix)相乘的结果,观察坐标系仅仅用于OpenGL内部的光照计算。 (3)裁剪坐标系。观察坐标系给出的点的坐标经投影变换后,得到的结果就是裁剪坐标。,2019/5/19,机械工程CAD基础,18,(4)归一化设备坐标系。首先将裁剪坐标系中的坐标分量x、y、z限制在-w,w之内,即-wx,y,zw,然后再用w去除x、y、z,这样就将裁剪坐标转换为归一化坐标了,结果的坐标值位于-1,1范围内。归一化坐标系空间也称为单位立方体。,2019/5/19,机械工程CAD基础,19,(5)窗口坐标系。单位立方体

11、中的x、y、z坐标直接按比例缩放到下一个坐标系,这个坐标系就是窗口坐标系。窗口坐标系以像素为度量单位,其左下角的坐标为(0,0)。OpenGL的窗口坐标系与Windows API所使用的窗口坐标系有所不同,Windows API的窗口坐标原点在窗口的左上角。 (6)屏幕坐标系。窗口坐标经由一个代表窗口在屏幕上位置的偏移量的修正便成为屏幕坐标。,2019/5/19,机械工程CAD基础,20,9.1.4 OpenGL坐标变换,1. 矩阵操作 在OpenGL中,3D模型是通过各种矩阵变换来显示在计算机屏幕上的。 涉及到的矩阵操作有模视变换矩阵、投影变换矩阵以及进行纹理贴图的纹理坐标变换矩阵。这些矩阵

12、是由glMatrix(Glenum mode)函数指定的,矩阵变换函数会影响所指定的当前矩阵,一次变换函数只能修改一个矩阵。,2019/5/19,机械工程CAD基础,21,2. 模视变换,生成一个几何物体时,OpenGL依照自己的坐标系统来建立这个几何物体。可以用模视变换(平移、旋转、比例几何变换)函数glTranslate()、glRotate()、glScale()来操纵整个物体,以确定该物体在场景中的位置、旋转角度和缩放比例。模视变换是通过矩阵变换来完成的,每进行一次变换,OpenGL会根据变换参数产生变换矩阵,再右乘当前模视变换矩阵,从而获得新的当前模视矩阵,这些矩阵仅影响在它被调用之

13、后所绘制的物体。,2019/5/19,机械工程CAD基础,22,3. 投影变换,投影变换的目的是将三维场景中的物体投影到二维平面上,这个二维平面就是显示窗口。投影变换定义一个取景体,该取景体决定物体是如何投影到窗口平面上的,并且它还定义了哪些物体和物体的哪些部分从最终的图像中剪切出去。投影变换同样是使用矩阵变换来实现的,与模视变换不同的是它使用投影变换矩阵,因此在进行投影变换之前必须调用glMatrixMode(GL_PROJECTION)函数将当前矩阵的类型设置为投影变换矩阵。,2019/5/19,机械工程CAD基础,23,1) 透视投影 透视投影基本符合人类的视觉习惯,同样尺寸的物体视点近

14、的比离视点远的大,远到极点即消失。正如人眼睛不能聚焦到非常近和非常远的物体一样,透视投影有两个剪切面近剪切面和远剪切面,分别将离视点太近和太远的物体部分地或全部地剪切掉。,2019/5/19,机械工程CAD基础,24,2). 正交投影 正交投影的取景体是一个封闭的平行六面体。与透视投影不同,从一端到另一端,取景体的大小不改变,因此同样尺寸的物体,离视点近的物体与离视点远的物体经投影后,它们大小仍然是相同的。这类图应广泛用于CAD等领域。正交投影的变换函数为glOrtho()函数。,2019/5/19,机械工程CAD基础,25,4. 视窗变换和附加裁减面,视窗变换类似于照片冲洗过程中的照片剪裁。

15、在计算机图形学中,视区是绘制图像的矩形区域。视区以窗口坐标来定义,它表示图像相对于窗口左下角的位置。进行视区变换时,所有顶点都已经过模视变换和投影变换,并且对于取景体之外的图像已被剪切掉了。,2019/5/19,机械工程CAD基础,26,1) 定义视区 2) 变换Z坐标 3) 附加剪裁面,2019/5/19,机械工程CAD基础,27,9.2 OpenGL编程基础,首先应该明确,OpenGL不是编程语言,而是一种API(应用程序编程接口Application Programming Interface),即只能提供接口,本身并不能单独构成应用程序,必须使用某种编程语言来调用这种API所提供的函数

16、,才能完成图形的处理。编程语言的选择范围很大,只要在Windows中能调用API的即可,常用的一般有Visual C+,Delphi。,2019/5/19,机械工程CAD基础,28,2019/5/19,机械工程CAD基础,29,9.2.1 OpenGL数据类型,2019/5/19,机械工程CAD基础,30,9.2.2 OpenGL函数形式的约定,v () 库前缀(gl):表示函数来自OpenGL核心库OpenGL32.lib;若来自实用库则是glu;glut代表来自实用程序软件包(以前是aux); 根命令(Color):表示是与颜色处理有关的函数; 参数个数(3):该函数需要3个形参; 参数类型(f):形参类型为浮点数(GLfloat,GLclampf)类型; v:表示形参为矢量形式(指向矢量或数组的指针参数);若不加v,表示形参为非矢量形式(独立变量)。,2019/5/19,机械工程CAD基础,31,9.2.3 图元与命令,OpenGL能够绘制的图元包括点、线段和多边形,OpenGL可以在这几种图元模式之间选择。可以

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号