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