12.6 多媒体知识讲座(内容见讲座文稿)
12.7 OpenGL 编程基础
12.7.1 计算机图形处理软件
通用编程软件包:常常是图形库,提供了生成各种图形、实现图形的处理和输入输出操作、控制和处
理各种图形设备以及交互过程中的各种事件,如 OpenGL。
专用编程软件包:一般由程序员在开发时使用。专用应用图形软件包是具有图形处理能力的交互式图
形软件系统,为非程序员提供的而且往往应用于某个或某些领域,如 AutoCAD、3DS MAX 等。专用应用图
形软件包使用范围广,使用人员众多。
12.7.2 Windows 图形环境介绍与图形软件开发(略)
12.7.3 OpenGL 介绍
1、OpenGL 基本概念
OpenGL(Open Graphics Library, 即开放性图形库) 是以 SGI 的 GL 三维图形库为基础制定的一个开
放式三维图形标准。SGI 在 1992 年 7 月发布了 1.0 版。OpenGL 规范由 ARB(OpenGL Architecture Review
Board,OpenGL 结构评审委员会)负责管理,目前加入 OpenGL ARB 的成员有 SGI、Microsoft、Intel、IBM、
SUN、Compaq、HP 等公司,它们均采用了 OpenGL 图形标准,许多软件厂商以 OpenGL 为基础开发自己的产
品,硬件厂商提供对 OpenGL 的支持。由于 OpenGL 的广泛应用,它已经成为一个工业标准。
2、OpenGL 的设备独立性
OpenGL 独立于硬件设备、窗口系统和操作系统,使得以 OpenGL 为基础开发的应用程序可以在各种平
台间移植。OpenGL 可以运行在当前各种流行操作系统之上,如 Windows95/98、Windows NT/2000、Linux、
Mac OS、Unix、OS/2 等。特别需要指出的是,由于 Microsoft 公司在其 Windows95 或更高版本的操作系统
和 Visual 系列高级语言开发环境中捆绑了 OpenGL 标准,使得 OpenGL 在微机中得到了更为普遍的应用。
3、OpenGL 的编程语言
OpenGL 可以与各种编程语言紧密接口。各种流行的编程语言如 C、C++、Fortran、Ada、Java 等都可
以调用 OpenGL 中的库函数。
4、OpenGL 的主要功能
(1)
绘制与建型
:提供了绘制点、线、多边形、球、锥、多面体、茶壶等复杂的三维物体以及贝塞尔、
NURBS 等复杂曲线或曲面的绘制函数。
(2)
各种变换
:提供了平移、旋转、变比和镜像四种基本变换以及平行投影和透视投影两种投影变换。
通过变换实现三维的物体在二维的显示设备上显示。
(3)
着色模式
:提供了 RGBA 模式和颜色索引两种颜色的显示方式。
(4)
光照处理
:在自然界我们所见到的物体都是由其材质和光照相互作用的结果,OpenGL 提供了辐射光
(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。材
质是指物体表面对光的反射特性,在 OpenGL 中用光的反射率来表示材质。
(5)
纹理映射(Texture Mapping)
: 将真实感的纹理粘贴在物体表面,使物体逼真生动。纹理是数据
的简单矩阵排列,数据有颜色数据、亮度数据和alpha 数据。位图和图像:提供了一系列函数来实现位图
和图像的操作。位图和图像数据均采用像素的矩阵形式表示。
(6)
制作动画
:提供了双缓存(Double Buffering)技术来实现动画绘制。双缓存即前台缓存和后台缓存,
后台缓存用来计算场景、生成画面,前台缓存用来显示后台缓存已经画好的画面。当画完一帧时,交互两
个缓存,这样循环交替以
产生平滑动画
。
(7)选择和反馈
:OpenGL 为支持交互式应用程序设计了选择操作模式和反馈模式。在选择模式下,则
可以确定用户鼠标指定或拾取的是哪一个物体,可以决定将把哪些图元绘入窗口的某个区域。而反馈模式,
OpenGL 把即将光栅化的图元信息反馈给应用程序,而不是用于绘图。
评论0
最新资源