1.VRML技术
虚拟现实建模语言(VRML)是一种与互联网结合、用来描述三维交互世界的程序语言,可应用于创建虚拟现实的对象、景象和展示模型。其作用就是用来创建虚拟现实场景,它把“虚拟世界”看成一个“场景”,而场景中的一切都看成“对象”(也就是一个“节点”),对每一个对象的描述就构成了VRML文件。VRML的目的主要是在网页中实现三维动画效果及其与三维对象的交互。应用VRML动态显示的功能能够实现虚拟设计中的动态仿真,可实现用户参与虚拟设计。用VRML编写的虚拟场景浏览网页界面如图7-3所示。
2.Flash技术
Flash技术严格意义上说是基于二维的应用的。由于它的文件量小、形式新颖动人,在互联网上颇受青睐,可以进行模拟物体、模拟场景及点线面的三维模拟。图7-4是利用Flash技术制作的一个人脸演示,随着鼠标的左右移动,三维人脸模型也会做出相应的动作。
图7-3 虚拟场景浏览网页界面
图7-4 Flash技术示例
3.3Dmax技术
在脸部表情的动画模拟方面,人们初期用数字化仪将人脸的各种表情输入到计算机中,然后用这些表情的线性组合来产生新的脸部表情。该方法的缺点是缺乏灵活性,不能模拟表情的细微变化,并且与表情库有很大关系。1987年,Waters提出了一个基于脸部表情编码系统(Facial Action Coding System,FACS)的脸部表情动画模拟方法。该方法由一个肌肉参数模型组成,人的脸用多边形网格来表示,并用肌肉向量来控制人脸的变形。它的特点在于可用一定数量的参数对模型的特征肌肉进行控制,并且不针对特定的脸部拓扑结构。Waters用该方法生成了高兴、恐惧、愤怒、厌恶、惊奇等逼真的表情,Waters的算法已成为模拟脸部表情动画的核心算法之一。而这些都是在3Dmax中得以实现的。图7-5显示了应用3Dmax制作的初步人脸模型。
4.Java 3D技术
利用Java技术可以轻松地创建360°实景物体和场景展示,并能模拟三维空间,主要的代表公司是APPLE(Quicktime)和Mgi公司。Java 3D是美国Sun公司为了弥补Java语言在多媒体及图形编程方面的不足而推出的一系列标准扩展API,Java 3D的推出是Java在视觉上、互动性上产生了一次飞跃,使Java开发人员具备了开发三维视觉的小应用程序和应用程序。这些程序还具有与客户交互的能力。图7-6是纽约大学KenPerlin教授用Java语言设计的虚拟人形象。
图7-5 用3Dmax制作的初步人脸模型
(www.daowen.com)
图7-6 纽约大学KenPerlin教授设计的虚拟人形象
5.OpenGL技术
OpenGL(OpenGraphics Library,开放的图形库)是由美国硅图公司(SGI)开发的三维图形库。它广泛适合于计算机系统环境下的三维图形应用程序设计接口,目前已成为开放式国际三维图形程序标准。OpenGL实际上是与图形硬件完全无关的程序设计接口,由100多个相关命令与函数组成。OpenGL是一种基于状态的执行机制,即OpenGL命令的执行被置于各种状态中,而且一直有效地保持到有命令改变这种状态为止。SGI公司为用户提供了三个连接库,使其对于OpenGL的程序设计更简化。它们是:实用库(GLU),用以执行特殊任务如坐标变换、纹理映射、多边形网格化、NURBS曲面等操作;视窗系统扩展库(GLX),用以把OpenGL设备场景与视窗系统相关联;辅助库(GLAUX),用以初始化窗口、监控输入输出、绘制三维对象等。OpenGL还包括多个基于双缓存技术的动画操作函数,可以有效地支持对几何造型的三维仿真。
在从几何造型的建模到动画生成的全部过程中,OpenGL命令或函数对图形的基本操作是从图形顶点开始,通过流水线处理,最后把像素值写入帧缓存的。图7-7是OpenGL基本操作的计算机图表的描述。
现在几乎所有较高档的3D图形显示卡都支持OpenGL标准,而日益发展起来的虚拟现实技术也要求OpenGL作为其浏览器的底层支持。虽然Microsoft公司开发的DirectX正得到游戏开发人员的重视,但是OpenGL的应用范围可涉及仿真、3D图形、图像处理和动画等领域,它在图形、图像领域内的霸主地位无可动摇,更令人动心的是,SGI公司新开发的Cosmo OpenGL可以方便地用于VRML的翻译。另外,由3DS MAX等绘制的动画、场景等也可由工具翻译为OpenGL语言。
利用OpenGL可以创作出具有照片质量的、独立于窗口系统(Windowing System)、操作系统(Operating System)和硬件平台的三维彩色图形和动画。OpenGL的核心库包括100多个用于3D图形操作的函数,主要负责处理对象外形描述、矩阵变换、灯光处理、着色、材质等与三维图形图像密切相关的事情。OpenGL工具库所包含的辅助函数是OpenGL基本函数的补充。这些函数的功能相对高级,可以用于处理坐标变换,错误处理,绘制球体、锥体、柱体、曲线、曲面等图形实体。计算机硬件性能的提高和OpenGL本身的不断发展,使得OpenGL不再只属于专用图形工作站。如今,开发人员可以在各种硬件平台上,利用OpenGL进行图形软件开发。
图7-7 OpenGL基本操作的计算机图表
OpenGL应用领域十分宽广,如军事、电视广播、计算机辅助设计/计算机辅助制造/计算机辅助工程(CAD/CAM/CAE)、娱乐、艺术造型、医疗影像、虚拟世界等。选择OpenGL的必要性是基于OpenGL的三维仿真具有如下的优越性:
(1)建模方便 OpenGL不仅提供基本的三维几何像素生成函数,而且提供了大量关于点、线、面以及NURBS曲线、NURSB曲面等基本图元操作函数,用之可以构建相当复杂的几何造型,以满足三维仿真的造型需要。
(2)实时的三维仿真 由于OpenGL同时提供了颜色动画操作函数,使仿真应用程序设计的算法更简单,极大地提高了动态仿真的帧显示速度,使实时的三维仿真得以实现。
(3)高度的真实感显示 还提供了大量的着色、光照、景深、阴影、混合、消隐、反走样、明暗处理、材质处理、图像处理、纹理映射、深度检测等功能函数,保证了三维仿真图形显示具有高度的真实感。
(4)程序的独立性 OpenGL是与硬件、视窗和操作相互独立的,因而三维仿真程序可以完全独立于视窗和操作系统之上,仿真程序的设计可相应地划分为5个层次:图形硬件、操作系统、窗口系统、OpenGL和三维仿真程序。
(5)程序的通用性与可移植性 由于OpenGL可集成到各种标准视窗和操作系统,如DOS、Windows95、WindowsNT、UNIX等中,因此基于OpenGL的三维仿真程序有良好的通用性与可移植性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。