OpenGL 概述
前言
随着计算机多媒体技术、可视化技术及图形学技术的发展,我们可以使用计算机来精
确地再现现实世界中的绚丽多彩的三维物体,并充分发挥自身的创造性思维,通过人机交
互来模拟、改造现实世界,这就是目前最为时髦的虚拟现实技术。通过这种技术,建筑工
程师可以直接设计出美观的楼房模型;军事指挥员可以模拟战场进行军事推演,网民可以
足不出户游览故宫博物馆等名胜古迹等。而虚拟现实技术最重要的一部分内容就是三维图
形编程。当前,三维图形编程工具中最为突出的是 SGI 公司的 OpenGL(Open Graphics
Language,开放式的图形语言),它已经成为一个工业标准的计算机三维图形软件开发接口,
并广泛应用于游戏开发、建筑、产品设计、医学、地球科学、流体力学等领域。值得一提
的是,虽然微软有自己的三维编程开发工具 DirectX,但它也提供 OpenGL 图形标准,因此,
OpenGL 可以在微机中广泛应用。
目前,OpenGL 在国内外都掀起了热潮,但国内对这一领域介绍的资料并不是很多,
特别是有志于在图形图像方面进行深入研究的读者朋友,常常苦于不掌握 OpenGL 编程接
口技术,无法向纵深领域扩展。为了开启三维图形编程这扇神秘大门,本讲座在结合
OpenGL 有关理论知识的基础上,着重介绍 Visual C++6.0 开发环境中的编程实现,由于水
平有限,本讲座可能无法面面俱到,存在一些疏漏,但相信它可以将开启 "神秘大门"的钥
匙交给读者朋友们。
一、OpenGL 的特点及功能
OpenGL 是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能
的图形应用程序,从 3D 动画、CAD 辅助设计到可视化访真,都可以利用 OpenGL 高质量、
高性能的特点。OpenGL 自 1992 年出现以来,逐渐发展完善,已成为一个唯一开放的,独
立于应用平台的图形标准,一个典型的 OpenGL 应用程序可以在任何平台上运行--只需要
使用目标系统的 OpenGL 库重新编译一下。
OpenGL 非常接近硬件,是一个图形与硬件的接口,包括了 100 多个图形函数用来建
立三维模型和进行三维实时交互。OpenGL 强有力的图形函数不要求开发人员把三维物体
模型的数据写成固定的数据格式,也不要求开发人员编写矩阵变换、外部设备访问等函数
大大地简化了编写三维图形的程序。例如:
1) OpenGL 提供一系列的三维图形单元(图元)供开发者调用。
2) OpenGL 提供一系列的图形变换函数。
3) OpenGL 提供一系列的外部设备访问函数,使开发者可以方便地访问鼠标、键盘、
空间球、数据手套等外部设备。
由于微软在 Windows 中包含了 OpenGL,所以 OpenGL 可以与 Visual C++紧密接合,
简单快捷地实现有关计算和图形算法,并保证算法的正确性和可靠性。简单地说,OpenGL
具有建模、变换、色彩处理、光线处理、纹理影射、图像处理、动画及物体运动模糊等功