永利皇宫官网 > 永利皇宫官网 >

OpenGL环境下图形系统的设计 教学提示 交互式图形程序库是图形用户接口GUI

  OpenGL环境下图形系统的设计 教学提示 交互式图形程序库是图形用户接口GUI中应用最普遍的一种 ISO发布的 各种图形标准中其用户界面均是以程序库的形式给出的 CGI、GKS、GKS3D、PHIGS、PHIGS 等。在三维图形显示上颇有特色且应用也很广泛的 OpenGL 也是图形程序库 Open

  OpenGL环境下图形系统的设计 教学提示 交互式图形程序库是图形用户接口GUI中应用最普遍的一种 ISO发布的 各种图形标准中其用户界面均是以程序库的形式给出的 CGI、GKS、GKS3D、PHIGS、PHIGS 等。在三维图形显示上颇有特色且应用也很广泛的 OpenGL 也是图形程序库 OpenGL 是近年发展起来的一个性能优越的三维图形标准 它是图形硬件与应用程序之间 的抽象界面 它支持诸如点、线、多边形及图像等多种基本图元 以及图形变换、光照计 算等基本绘制操作 也支持纹理映射、反走样等高级绘制功能。在 CAD CAM、娱乐、医 学图像、虚拟现实等领域中得到了广泛应用。该程序库不仅可作为开发交互式图形系统、 CAD CAM系统等的支撑环境 而且也可用于计算机图形学的教学及其实验。本章将介绍 OpenGL的基础知识以及 GLUT OpenGL实用程序工具包的使用。 教学目标 掌握 OpenGL的基本运用 初步具备三维图形系统的开发能力。 在计算机发展初期人们就开始从事计算机图形的开发。直到计算机硬、软件和计算 机图形技术高度发达的 20世纪 90年代 人们才发现复杂的数据以视觉的形式表现是最容 易理解的 因而三维图形得以迅猛发展 各种三维图形工具软件包相继推出 PHIGS、PEX、RenderMan 等。这些三维图形工具软件包有些侧重于使用方便 有些侧重于渲染效 果或与应用软件的连接 但没有一种三维工具软件包在交互式三维图形建模能力、外部设 备管理以及编程方便程度上能够与 OpenGL相比拟。OpenGL经过对 GL的进一步发展 现二维和三维的高级图形技术在性能上表现得异常优越。它的功能包括建模、变换、光 线处理、色彩处理、动画以及更先进的能力 如纹理影射、物体运动模糊等。OpenGL 这些能力为实现逼真的三维渲染效果、建立交互的三维景观等提供了条件。由于 OpenGL高度可重用性的特点 已经有几十家大公司表示接受 OpenGL作为标准 图形软件接口。目前加入 OpenGL ARBOpenGL Architecture Review Board OpenGL体系结构审查委员会的成员有 SGI公司、Microsoft公司、Intel公司、IBM公司、SUN公 司、DEC公司已由 Compaq公司兼并、HP公司、AT T公司的 UNIX软件实验室等。在 OpenGL ARB的努力下 OpenGL已经成为高性能图形和交互式视景处理的工业标准 Windows95 98、Windows NT、Mac OS、BeOS、OS UNIX上应用。作为图形硬件的软件接口 OpenGL由几百个指令或函数组成。对程序员而言 OpenGL 是一些指令或函数的集合。这些指令允许用户对二维几何对象或三维几何对象进行说明 允许用户对对象实施操作 以便把这些对象着色Render到帧存Frame Buffer上。OpenGL 的大部分指令提供立即接口操作方式 以便使说明的对象能够马上被画到帧存上。一个使 OpenGL的典型描绘程序首先在帧存中定义一个窗口然后在此窗口中进行各种操作。 在所有的指令中 有些调用用于画简单的几何对象 另外一些调用将影响这些几何对象的 204 计算机图形技术 描绘 包括如何光照、如何着色以及如何从用户的二维或三维模型空间映射到二维屏幕等。 对于 OpenGL的实现者而言 OpenGL是影响图形硬件操作的指令集合。如果硬件仅 仅包括一个可以寻址的帧存 那么 OpenGL就不得不几乎完全在 CPU上实现对象的描绘 图形硬件可以包括不同级别的图形加速器 从能够画二维的直线到多边形的网栅系统 再到包含能够转换和计算几何数据的浮点处理器。OpenGL 可以保持数量较大的状态信 息。这些状态信息可以用来指示 OpenGL如何往帧存中画物体 有一些状态用户可以直 接使用 通过调用即可获得状态值 而另外 些状态只能根据它作用在所画物体上产生 的影响才可见。 OpenGL是网络透明的 在客户机 服务器Client Server体系结构中 OpenGL允许本 地和远程绘图 可以通过网络发送图形消息至远程机 也可以发送图形信息至多个显示屏 1之后OpenGL 2已经面市。事实上OpenGL是一个优 秀的专业化 3D的 API。 OpenGL已经发展成为因不同应用目的而经二次开发后的多种版本 且因不同的公司而不同。TGS公司开发出基于 OpenGL核心函数和面向对象的编程技术可 以运行于 Windows NT的 OpenGL Inventor产品。OpenGL Inventor提供了预建的对象和可 交互的内置事件模型 可创建高级的三维场景、转换不同格式的数据文件及打印信息。 SUN 公司发布了面向 SolarisTM的新版 OpenGL图形基础库。OpenGL适用于下一代医学成像、 地理信息、石油勘探、气候模型模拟及娱乐动画等领域。新版 OpenGL提供增强的绘图性 以及运行主流图形应用所必需的可靠性。OpenGL作为一个性能优越的图形应用程序设计界面API能适应广泛的计算环境 个人计算机到工作站和超级计算机OpenGL 都能实现高性能的三维图形功能。由于许多 在计算机界具有领导地位的计算机公司纷纷采用 OpenGL 作为三维图形应用程序设计界 OpenGL应用程序具有广泛的移植性。因此OpenGL已成为目前的三维图形开发标准 是从事三维图形开发工作的技术人员所必须掌握的开发工具。 OpenGL应用程序的工作过程作为图形硬件的软件接口 OpenGL 最主要的工作就是将二维及三维物体描绘至帧缓 存中。这些物体由一系列的描述物体几何性质的顶点Vertex或描述图像的像素Pixel组成。 OpenGL 执行一系列的操作后把这些数据最终转化成像素数据 并在帧缓存中形成最后的 结果。下面对 OpenGL的工作作概要性介绍。 图元操作OpenGL提供多种模式绘制图元Primitive 而且一种模式的设置一般不会影响其他模 式的设置。无论发生什么情况 指令总是被顺序处理的 也就是说 一个图元必须完全画 完之后 后继图元才能影响帧存。 图元由一组顶点定义。该组顶点既可以只包含一个顶点 也可以包含多个顶点。顶点 的说明由位置坐标、颜色值、法向量和纹理坐标组成。每个顶点可以被顺序或以相同的方 式独立地处理。每个顶点根据其是二维顶点或三维顶点而可以分别使用 4个坐标。此外当前法线、当前纹理坐标以及当前颜色值可以在处理每个顶点的过 204 205 OpenGL环境下图形系统的设计程中被使用或改变。当前法线是一个三维向量 用于光照计算。纹理坐标决定如何把纹理 图像映射到图元。颜色与每个顶点有关 相关的颜色或者是当前颜色或者是由光照产生的 颜色 这取决于是否允许光照。类似地 纹理坐标也与每个顶点坐标有关。 OpenGL中几何对象是根据 glBegin glEnd函数对之间所包含的一系列指定顶点 的位置坐标、颜色值、法向量值和纹理坐标画出的。这样的几何对象有点线段、循环线段、 分离线段、多边形、三角形、三角形扇、分离的三角形、四边形及分离的四边形。 图形控制OpenGL 提供诸如变换矩阵、光照、反走样方法、像素操作等来控制二维和三维图形 的绘制。然而 它并不提供一个描述或建立复杂几何物体的手段。OpenGL 提供的是怎样 画复杂物体的机制而非描绘复杂物体本身的面面俱到的工具 它是一个绘制系统而非造型 系统。 OpenGL指令解释模型OpenGL的指令解释模型是客户机 服务器模式。 OpenGL基本操作OpenGL可以在具有不同图形能力和性能的图形工作站平台及计算机上运行。图 出了OpenGL的绘制原理图。 逐点 几何 求值器 操作 顶点 基元 数据 图像像素 像素操作 纹理存储器 数据 OpenGL的绘制原理图用户指令从左侧进入 OpenGL。指令分为两部分 一部分画指定的几何物体 另一部 分则指示在不同的阶段怎样处理几何物体。许多指令很可能被排列在显示列表Display List 在后续时间里对其进行处理。通过求值器Evaluator计算输入值的多项式函数来为画近似曲线和曲面等几何物体提供有效手段 然后由顶点描述的几何图元进行操作。在此阶段 对顶点进行转换、光照 并把图元剪切到观察体Frustum中 为下一步光栅化Rasterization 做准备。光栅化产生一系列图像的帧缓存地址和图元的二维描述值 其生成结果称为基片 Fragment 每个基片适合于在最后改变帧存之前对单个的基片进行操作。这些操作包括根 据先前存储的深度值进行有条件地更新帧缓存 进行各种测试以及融合 即将处理的基片 颜色与已经存储的颜色进行屏蔽 对基片进行逻辑操作和淡化Dithering。 205 206 计算机图形技术 图像像素数据的处理包括像素、位图、影像等 它们经过像素操作之后直接进入光栅 化阶段。 由于 OpenGL的几何图元是由顶点描述的 这样可以便于逐点操作并按其数据装配成 基元 然后经光栅化形成基片。对于像素数据 其结果还可以存储在纹理用的内存中 后从纹理内存中取出像素信息进行光栅化。OpenGL显示列表事实上是一组函数 它们被存储起来 以便使 OpenGL在后继时间 内能够进行处理。 OpenGL 求值器也是许多特殊的函数。这些函数允许你采用一个或两个变量的多项式 映射来产生顶点坐标、法线坐标、纹理坐标及颜色 生成结果传送给执行管道Pipeline。 求值器接口提供了在 OpenGL之上建立更一般的曲线和曲面包的基础。在 OpenGL中提供 求值器而不是更复杂的 NURBS接口的优点在于 在表示非 NURBS曲线和曲面以及利用 特殊的表面性质时 仍然能对多项式求值器进行有效地利用 而不必将其转换为 NURBS

  第9章OpenGL环境下图形系统的设计(可编辑),系统opengl版本过低,图形系统,交互图形系统,图形核心系统,系统 高级 图形接口,linux图形系统,opengl,opengl es,opengl编程指南