openGL第二讲——基本特点

来源:互联网 发布:模拟转网络 编辑:程序博客网 时间:2024/04/29 19:49

OpenGL基础技术讲座--基本特点

第二讲 OpenGL的基本特点

在计算机发展初期,人们就开始从事计算机图形的开发,但直到20世纪80年代末、90年代初,三维图形才开始迅速发展。于是各种三维图形工具软件包相继推出,如GL,RenderMan等。这些三维图形工具软件包有些侧重于使用方便,有些侧重于绘制效果或与应用软件的连接,但没有一种软件包能在交互式三维图形建模能力和编程方便程度上与OpenGL相比拟。


OpenGL作为一个性能优越的图形应用程序设计界面(API),适用于广泛的计算机环境。从个人计算机到工作站和超级计算机,OpenGL都能实现高性能的三维图形功能。由于许多在计算机界具有领导地位的计算机公司纷纷采用OpenGL作为三维图形应用程序设计界面,所以OpenGL应用程序具有广泛的移植性。因此,OpenGL已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。
OpenGL应用领域十分宽广,如军事、电视广播、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟世界等。它具有以下特点:


l 工业标准
OARB(OpenGL Architecture Review Board)联合会领导OpenGL技术规范的发展,OpenGL有广泛的支持,它是业界唯一的真正开发的、跨平台的图形标准。


2 可靠度高
利用OpenGL技术开发的应用图形软件与硬件无关,只要硬件支持OpenGL API标准就行了,也就是说,OpenGL应用可以运行在支持OpenGL API标准的任何硬件上。


3 可扩展性
OpenGL是低级的图形API,它具有充分的可扩展性。如今,许多OpenGL开发商在OpenGL核心技术规范的基础上,增强了许多图形绘制功能,从而使OpenGL能紧跟最新硬件发展和计算机图形绘制算法的发展。对于硬件特性的升级可以体现在OpenGL扩展机制以及OpenGLAPI中,一个成功的OpenGL扩展会被融入在未来的OpenGL版本之中。


4 可伸缩性
基于OpenGL API的图形应用程序可以运行在许多系统上,包括各种用户电子设备、PC、工作站以及超级计算机。


5 容易使用
OpenGL的核心图形函数功能强大,带有很多可选参数,这使得源程序显得非常紧凑;OpenGL可以利用已有的其它格式的数据源进行三维物体建模,大大提高了软件开发效率;采用OpenGL技术,开发人员几乎可以不用了解硬件的相关细节,便可以利用OpenGL开发照片质量的图形应用程序。


6 灵活性
尽管OpenGL有一套独特的图形处理标准,但各平台开发商可以自由地开发适合于各自系统的OpenGL执行实例。在这些实例中,OpenGL功能可由特定的硬件实现,也可用纯软件例程实现,或者以软硬件结合的方式实现。


客观世界和各种事物的形状虽然千变万化,但用计算机将之描述出来却只需要把一系列基本操作组合起来。
OpenGL提供了以下基本操作:


l 绘制物体
真实世界里的任何物体都可以在计算机中用简单的点、线、多边形来描述。OpenGL提供了丰富的基本图元绘制命令,从而可以方便地绘制物体。


2 变换
可以说,无论多复杂的图形都是由基本图元组成并经过一系列变换来实现的。OpenGL提供了一系列基本的变换,如取景变换、模型变换、投影变换及视口变换。


3 光照处理
正如自然界不可缺少光一样,绘制有真实感的三维物体必须做光照处理。


4 着色
OpenGL提供了两种物体着色模式,一种是RGBA颜色模式,另一种是颜色索引模式。


5 反走样
在OpenGL绘制图形过程中,由于使用的是位图,所以绘制出的图像的边缘会出现锯齿形状,称为走样。为了消除这种缺陷,OpenGL提供了点、线、多边形的反走样技术。


6 融合
为了使三维图形更加具有真实感,经常需要处理半透明或透明的物体图像,这就需要用到融合技术。


7 雾化
正如自然界中存在烟雾一样,OpenGL提供了"fog"的基本操作来达到对场景进行雾化的效果。


8 位图和图像
在图形绘制过程中,位图和图像是非常重要的一个方面。OpenGL提供了一系列函数来实现位图和图像的操作。


9 纹理映射
在计算机图形学中,把包含颜色、alpha值、亮度等数据的矩形数组称为纹理。而纹理映射可以理解为将纹理粘贴在所绘制的三维模型表面,以使三维图形显得更生动。


l0 动画
出色的动画效果是OpenGL的一大特色,OpenGL提供了双缓存区技术来实现动画绘制。


OpenGL并没有提供三维模型的高级命令,它也是通过基本的几何图元--点、线及多边形来建立三维模型的。目前,有许多优秀的三维图形软件(如3DMAX)可以较方便地建立物体模型,但又难以对建立的模型进行控制,若把这些模型转化为OpenGL程序,则可随心所欲地控制这些模型来制作三维动画,实现仿真数据的可视化和虚拟现实。