- 1、本文档共47页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 OpenGL开发基础
机械工程CAD基础 机械工程CAD基础 第9章 OpenGL开发基础 人类生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,必须能在三维空间描绘这些物体。三维表现技术能够再现三维世界中的物体,能够用三维形体来表示复杂的信息,这种技术就是可视化技术。 可视化技术赋予人们一种仿真的、三维的并且具有实时交互的能力,这样人们可以在三维图形世界中用以前不可想象的手段来获取信息或发挥自己创造性的思维。OpenGL可以完成上述功能,是事实上的三维图形标准。 在真实世界里,所有的物体都是三维的。但是,这些三维物体在计算机世界中却必须以二维平面物体的形式表现出来。实际上,从三维空间到二维平面,就如同用相机拍照一样,通常都要经历以下几个步骤: 1)将相机置于三角架上,让它对准三维景物(视点变换,Viewing Transformation); 2)将三维物体放在适当的位置(模型变换,Modeling Transformation); 3)选择相机镜头并调焦,使三维物体投影在二维胶片上(投影变换,Projection Transformation); 4)决定二维像片的大小(视口变换,Viewport Transformation)。 9.1 OpenGL的基本概念 OpenGL实质是一种图形与硬件的接口,包括了100多个图形函数,开发者可以用这些函数来建立三维模型和三维实时交互。与其它图形程序设计接口不同,OpenGL提供了十分清晰明了的图形函数。因此初学的程序设计员也能利用OpenGL的图形处理能力和1670万种色彩的调色板设计出三维图形以及三维交互软件。 OpenGL强有力的图形函数不要求开发者把三维物体模型的数据写成固定的数据格式,这样开发者不但可以直接使用自己的数据,而且可以利用其它不同格式的数据源,如DXF格式的文件等。这种灵活性极大地节省了开发者的时间,提高了软件开发效率。 长期以来,从事三维图形开发的技术人员都不得不在自己的程序中编写矩阵变换、外部设备访问等函数,这样为调制这些与自己的软件开发目标关系并不十分密切的函数费脑筋,而OpenGL正是提供一种直观的编程环境,它提供的一系列函数大大地简化了三维图形程序。 9.1.1 OpenGL工作流程 数据处理 将所有数据(包括几何顶点数据和图像像素数据)存储在一个显示列表中,计算顶点和像素的坐标、纹理、法向向量数据,近似的绘制几何曲线和曲面。 顶点和图元的处理 对顶点进行变化和光照处理;对图元进行裁减以适合视区大小。这一阶段的处理结果,被存储为纹理内存以用于光栅操作阶段,或者采取同几何数据一样的形式进行光栅化,并将结果融入帧缓存中; 光栅化操作 光栅化包含几何和物理映射两部分。几何操作是将图元转化为二维图像;物理操作是计算图像每个点的颜色和深度等信息;通过几何操作和物理操作的二维描述,产生一系列的帧缓存地址和相关数值,并将所有片段作为像素存储在帧缓存中,写纹理内存,使用纹理映射,最后光栅化成像素段; 对像素段进行处理,雾化效果生成,反走样处理,抖动处理等帧缓冲区操作。 9.1.2 OpenGL具体功能 1. 模型绘制 OpenGL能够绘制点、线和多边形。应用这些基本的形体,可以构造出几乎所有的三维模型。OpenGL通常用模型的多边形的顶点来描述三维模型。 2. 模型观察 在建立了三维景物模型后,就需要用OpenGL描述如何观察所建立的三维模型。观察三维模型是通过一系列的坐标变换进行的。模型的坐标变换在是观察者能够在视点位置观察与视点相适应的三维模型场景。在整个三维模型的观察过程中,投影变换的类型决定观察三维模型的观察方式,不同的投影变换得到的三维模型的景象也是不同的。最后的视窗变换则对模型的景象进行剪取缩放,即决定整个三维模型在屏幕上的图形。 3. 颜色模式的指定 OpenGL应用了一些专门的函数来指定三维模型的颜色。程序开发者可以选择两个颜色模式,即RGBA模式和颜色索引模式。在RGBA模式中,颜色直接由RGB值来指定;在颜色索 引模式中,颜色值则由颜色索引表中的一个颜色的索引值来指定。开发者还可以选择平面明暗处理和平滑明暗处理两种对整个三维场景进行着色。 4. 光照处理 用OpenGL绘制的三维模型必须加上光照才能更加与客观物体相似。OpenGL提供了管理四种光(辐射光、环境光、镜面光和漫反射光)的方法,另外还可以指定模型表面的反射特性,即材质定义。 5. 图像效果增强 OpenGL提供了一系列的增强三维场景的图像效果的函数,这些函数通过反走样、融合和雾化来增强图像效果,雾能使影象从视点到远处逐渐褪色,更接近事实。 6. 位图和图像处理 OpenGL还提供了专门对位图和图像进行操作的函数。 7. 实时动画 为了获得平滑的动画效果,需要先在内存
文档评论(0)