OpenGL讲座稿_2. 功能与特点

OpenGL提供了以下基本操作:
1. 绘制图元:真实世界里的任何物体都可以在计算机中用简单的点、线、多边形来描述。OpenGL提供了丰富的基本图元绘制命令,从而可以方便地绘制物体。
2. 变换:可以说,无论多复杂的图形都是由基本图元组成并经过一系列变换来实现的。OpenGL提供了一系列基本的变换,如取景变换、模型变换、投影变换及视口变换。
3. 光照处理:正如自然界不可缺少光一样,绘制有真实感的三维物体必须做光照处理。
4. 着色:OpenGL提供了两种物体着色模式,一种是RGBA颜色模式,另一种是颜色索引模式。
5. 反走样:在OpenGL绘制图形过程中,由于使用的是位图,所以绘制出的图像的边缘会出现锯齿形状,称为走样。为了消除这种缺陷,OpenGL提供了点、线、多边形的反走样技术。
6. 融合:为了使三维图形更加具有真实感,经常需要处理半透明或透明的物体图像,这就需要用到融合技术。
7. 雾化:正如自然界中存在烟雾一样,OpenGL提供了”fog”的基本操作来达到对场景进行雾化的效果。
8. 位图和图像:在图形绘制过程中,位图和图像是非常重要的一个方面。OpenGL提供了一系列函数来实现位图和图像的操作。
9. 纹理映射:在计算机图形学中,把包含颜色、alpha值、亮度等数据的矩形数组称为纹理。而纹理映射可以理解为将纹理粘贴在所绘制的三维模型表面,以使三维图形显得更生动。
10. 动画:OpenGL提供了双缓存区技术来实现动画绘制。

OpenGL 作为一个性能优越的图形应用程序设计界面(API),适用于广泛的计算机环境。从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,所以OpenGL应用程序具有广泛的移植性。因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。

OpenGL的工作流程图(略 参考OpenGL Spec)。GL命令从左边进入。命令分为两种:一种指定需要进行绘制的几何图元对象属性(如顶点坐标值、颜色等),另一种则设定处理这些对象的各个步骤的工作方式(如设定视口、设定光照效果等)。
1. 求值器(Evaluator):通过输入的多项式参数进行计算并逼近曲线/曲面。
2. 顶点操作与图元装配(Per-Vertex Operations, Primitive Assembly):对顶点进行(从世界坐标系到视口坐标系的)几何变换和光照求值、对几何图元进行裁切操作。
3. 栅格化(Rasterization):完成图元信息从视口坐标系到设备坐标系的转换。最后得到一系列片断(Fragment)。
4. 片段操作(Per-Fragment Operations):包括根据片断深度值与深度缓冲区中的深度值进行深度检测并更新深度缓冲区(depth buffer)、融合(blending)操作等等。操作结果最终传送到帧缓冲区(Framebuffer)中。
5. 帧缓冲区(Framebuffer):可以对帧缓冲区进行读取操作,或者将数据进行帧缓冲区之间的移动。
6. 显示列表(Display List):保存(事先设定好的)一系列GL操作,类似于批处理。
7. 象素操作(Pixel Operations):对于如位图(bitmaps)和纹理(textures)等图元进行象素操作之后直接栅格化。
8. 纹理内存(Texture Memory):保存纹理信息,用于贴图操作。

上述流程仅仅是一个是对GL的一个大致描述,而不是严格的流程定义。对于一些对象,例如曲面,则可能在进行多边形化之前先进行了几何变换操作。

OpenGL应用领域十分宽广,如军事、电视广播、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟世界等。它具有以下特点:
1. 工业标准:OARB(OpenGL Architecture Review Board)联合会领导OpenGL技术规范的发展,OpenGL有广泛的支持,它是业界唯一的真正开放的、跨平台的图形标准。
2. 可靠度高:利用OpenGL技术开发的应用图形软件与硬件无关,只要硬件支持OpenGL API标准就行了,也就是说,OpenGL应用可以运行在支持OpenGL API标准的任何硬件上。
3. 可扩展性:OpenGL是低级的图形API,它具有充分的可扩展性。如今,许多OpenGL开发商在OpenGL核心技术规范的基础上,增强了许多图形绘制功能,从而使OpenGL能紧跟最新硬件发展和计算机图形绘制算法的发展。对于硬件特性的升级可以体现在OpenGL扩展机制以及OpenGL API中,一个成功的OpenGL扩展会被融入在未来的OpenGL版本之中。
4. 可伸缩性:基于OpenGL API的图形应用程序可以运行在许多系统上,包括各种用户电子设备、PC、工作站以及超级计算机。
5. 容易使用:OpenGL的核心图形函数功能强大,带有很多可选参数,这使得源程序显得非常紧凑;OpenGL可以利用已有的其它格式的数据源进行三维物体建模,大大提高了软件开发效率;采用OpenGL技术,开发人员几乎可以不用了解硬件的相关细节,便可以利用OpenGL开发照片质量的图形应用程序。
6. 灵活性:尽管OpenGL有一套独特的图形处理标准,但各平台开发商可以自由地开发适合于各自系统的OpenGL执行实例。在这些实例中,OpenGL功能可由特定的硬件实现,也可用纯软件例程实现,或者以软硬件结合的方式实现。

from: http://kwun.blogbus.com/logs/19050297.html

标签:,
News, OpenGL

相关日志

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Leave Comment

(必填)

(必填)