第九章 Opene 余我辉 撒计学院
第九章 OpenGL 余敦辉 湖北大学 数计学院
9.1概述 0 penGL是一个功能强大的图形库,用户可以 很方便地利用它开发出有多种特殊视觉效果(如光 照,纹理,透明,阴影)的三维图形。 OpenGL的前 身是SGI公司为其图形工作站设计的一个图形开发软 件库 IRIS GL( Graphics Library),由于其性能 优越,因此受到了用户的一致推崇。SGⅠ公司有针对 性地对L进行了改进,特别是扩展了GL的可移植性, 使之成为一个跨平台的开放式图形编程接口,这就 是 OpenGl
9.1 概述 n OpenGL是一个功能强大的图形库,用户可以 很方便地利用它开发出有多种特殊视觉效果(如光 照,纹理,透明,阴影)的三维图形。OpenGL的前 身是SGI公司为其图形工作站设计的一个图形开发软 件库IRIS GL(Graphics Library),由于其性能 优越,因此受到了用户的一致推崇。SGI公司有针对 性地对GL进行了改进,特别是扩展了GL的可移植性, 使之成为一个跨平台的开放式图形编程接口,这就 是OpenGL
9.1概述 ■1992年,0 penGL1.0版正式发布,并立即得到了迅速的应用 推广。 1995年12月,由 OpenGL ARB( Architecture Review Board 体系结构评审委员会)批准了0 penGL1.1版本,这一版本的 0 penGL性能得到了加强,并引入了一些新特征,其中包括: 在增强元文件中包含 OpenGL调用,引进打印机支持,通过顶 点数组的新特征,提高了顶点位置、法向、颜色及色彩指数 纹理坐标、多边形边缘标志等的传输速度 现在,0 penGL已经成为应用最为广泛的二维和三维图形编程 接口。各种平台上利用0 penGL开发的图形应用软件大量地涌 现出来。 0 penGL的主要版本有1.0、1.1、1.2和1.2.1,其中以1.1版 最为常用
9.1 概述 n 1992年,OpenGL1.0版正式发布,并立即得到了迅速的应用 推广。 n 1995年12月,由OpenGL ARB(Architecture Review Board— 体系结构评审委员会)批准了OpenGL1.1版本,这一版本的 OpenGL性能得到了加强,并引入了一些新特征,其中包括: 在增强元文件中包含OpenGL调用,引进打印机支持,通过顶 点数组的新特征,提高了顶点位置、法向、颜色及色彩指数、 纹理坐标、多边形边缘标志等的传输速度。 n 现在,OpenGL已经成为应用最为广泛的二维和三维图形编程 接口。各种平台上利用OpenGL开发的图形应用软件大量地涌 现出来。 n OpenGL的主要版本有1.0、1.1、1.2和1.2.1,其中以1.1版 最为常用
9.1概述 值得一提的是,由于 Microsof公司在 WindOws nt 中提供 OpenGL图形标准, Opengl将在微机中广m 泛应用,尤其是 Opengl三维图形加速卡和微机图 形工作站的推出,人们可以在微机上实现三维图形 应用,如CAD设计、仿真模拟、三维游戏等,从而 更有机会、更方便地使用 OpengL及其应用软件来 建立自己的三维图形世界
9.1 概述 n 值得一提的是,由于Microsoft公司在Windows NT 中提供OpenGL图形标准,OpenGL将在微机中广 泛应用,尤其是OpenGL三维图形加速卡和微机图 形工作站的推出,人们可以在微机上实现三维图形 应用,如CAD设计、仿真模拟、三维游戏等,从而 更有机会、更方便地使用OpenGL及其应用软件来 建立自己的三维图形世界
OpenGL的特点 ■从程序开发人员的角度来看,0 penGL是一组绘图命 令的API集合。利用这些API能够方便地描述二维和 三维几何物体,并控制这些物体按某种方式绘制到 显示缓冲区中。0 penGL的API集提供了物体描述、 平移、旋转、缩放、光照、纹理、材质、象素、位 图、文字、交互以及提高显示性能等方面的功能, 基本涵盖了开发二、三维图形程序所需的各个方面
OpenGL的特点 n 从程序开发人员的角度来看,OpenGL是一组绘图命 令的API集合。利用这些API能够方便地描述二维和 三维几何物体,并控制这些物体按某种方式绘制到 显示缓冲区中。OpenGL的API集提供了物体描述、 平移、旋转、缩放、光照、纹理、材质、象素、位 图、文字、交互以及提高显示性能等方面的功能, 基本涵盖了开发二、三维图形程序所需的各个方面
OpenGL的特点 1、应用广泛:广泛地应用于CAD/CAM、三维动画、数字图象 处理以及虚拟现实等领域;无论是在PC机上,还是在工作 站甚至是大型机和超级计算机上,0 penGL都能表现出它的高 性能和强大威力。 跨平台性:能够在几乎所有的主流操作系统上运行,包 括UNIX、Mac0S、0S/2、 Windows nt、 Windows9x、 Linux等; 也能够与其中绝大多数的窗口系统一起工作。 3、高质量和高性能:无论是在CAD/CM、三维动画还是可视 化仿真等领域,0 penGL高质量和高效率的图形生成能力都能 得到充分的体现
OpenGL的特点 n 1、应用广泛:广泛地应用于CAD/CAM、三维动画、数字图象 处理以及虚拟现实等领域 ;无论是在PC机上,还是在工作 站甚至是大型机和超级计算机上,OpenGL都能表现出它的高 性能和强大威力。 n 2、跨平台性:能够在几乎所有的主流操作系统上运行,包 括UNIX、Mac OS、OS/2、Windows NT、Windows9x、Linux等; 也能够与其中绝大多数的窗口系统一起工作。 n 3、高质量和高性能:无论是在CAD/CAM、三维动画还是可视 化仿真等领域,OpenGL高质量和高效率的图形生成能力都能 得到充分的体现
OpenGL的特点 ■4、出色的编程特性:良好的前瞻性、伸缩性和易使 用性等也是0 penGL的突出编程特点 5、网络透明性:建立在客户/服务器模型上的网络 透明性是0 penGL的固有特性,它允许一个运行在工 作站上的进程在本机或通过网络在远程工作站上显 示图形。利用这种透明性能够均衡地共同承担图形 应用任务的各工作站的负荷,也能使得没有图形功 能的服务器能够使用图形工具
OpenGL的特点 n 4、出色的编程特性:良好的前瞻性、伸缩性和易使 用性等也是OpenGL的突出编程特点。 n 5、网络透明性:建立在客户/服务器模型上的网络 透明性是OpenGL的固有特性,它允许一个运行在工 作站上的进程在本机或通过网络在远程工作站上显 示图形。利用这种透明性能够均衡地共同承担图形 应用任务的各工作站的负荷,也能使得没有图形功 能的服务器能够使用图形工具
OpenGL的AP结构 图1-1(a)是Win32平台上0 penGL API的结构简图;(b)是UNIX 平台上0 penGL APIl的结构简图 其中“0 penGL”表示0penL基本API,这类AP的主要功能包括 物体描述、平移、旋转、缩放、光照、纹理、材质、象素 位图、文字处理等。 “GLU”表示实用API,其主要功能包括绘制二次曲面、 NURBS 曲线曲面、复杂多边形以及纹理、矩阵管理等。 WL”是Win32为支持0 penGL而特别设计的一套编程接口; ■“GLX”是IX系统支持0penG的编程接口 为了实现与硬件平台无关,0pen不提供窗口管理、输入管 理和事件响应机制,因此0 penGL程序必须使用所在平台的用 户接口(如GD和x1ib)M
OpenGL的API结构 n 图1-1(a)是Win32平台上OpenGL API的结构简图;(b)是UNIX 平台上OpenGL API的结构简图。 n 其中“OpenGL”表示OpenGL基本API,这类API的主要功能包括 物体描述、平移、旋转、缩放、光照、纹理、材质、象素、 位图、文字处理等。 n “GLU”表示实用API,其主要功能包括绘制二次曲面、NURBS 曲线曲面、复杂多边形以及纹理、矩阵管理等。 n “WGL”是Win32为支持OpenGL而特别设计的一套编程接口; n “GLX”是UNIX系统支持OpenGL的编程接口。 n 为了实现与硬件平台无关,OpenGL不提供窗口管理、输入管 理和事件响应机制,因此OpenGL程序必须使用所在平台的用 户接口(如GDU和Xlib)
OpenGL的AP结构 Windows应用程序 UNX应用程序 GLU ::GLU GDU+ WGL OpenGL+ Ⅺ1b4|GLx+ Opengl (a) Win32 OpenGL API (b) UNIX OpenGL API+
OpenGL的API结构
OpenGL基本理解 Opengl实际上是一种图形与硬件的接口。它包括了 120个图形函数,开发者可以用这些函数来建立三维模 型和进行三维实时交互。 Opengl是一个高性能的图形开发软件包。 OpengL支 持网络,在网络系统中用户可以在不同的图形终端上运 行程序显示图形。 OpengL作为一个与硬件独立的图形接口,它不提供与 硬件密切相关的设备操作函数,同时,它也不提供描述 类似于飞机、汽车、分子形状等复杂形体的图形操作函 数。用户必须从点、线、面等最基本的图形单元开始构 造自己的三维模型
OpenGL基本理解 n OpenGL实际上是一种图形与硬件的接口。它包括了 120个图形函数,开发者可以用这些函数来建立三维模 型和进行三维实时交互。 n OpenGL是一个高性能的图形开发软件包。OpenGL支 持网络,在网络系统中用户可以在不同的图形终端上运 行程序显示图形。 n OpenGL作为一个与硬件独立的图形接口,它不提供与 硬件密切相关的设备操作函数,同时,它也不提供描述 类似于飞机、汽车、分子形状等复杂形体的图形操作函 数。用户必须从点、线、面等最基本的图形单元开始构 造自己的三维模型