三维动画的文献综述-参考

  • 格式:doc
  • 大小:181.00 KB
  • 文档页数:10

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、前言部分

动画及三维动画技术简介

动画是一门通过在连续多格的胶片上拍摄一系列单个画面,从而产生动态视觉的技术和艺术,这种视觉是通过将胶片以一定的数率放映体现出来的.实验证明:动画和电影的画面刷新率为24帧/s,即每秒放映24幅画面,则人眼看到的是连续的画面效果[12]。

计算机动画是指采用图形与图像的处理技术,借助于编程或动画制作软件生成一系列的景物画面,其中当前帧是前一帧的部分修改。计算机动画是采用连续播放静止图像的方法产生物体运动的效果。计算机动画的关键技术体现在计算机动画制作软件及硬件上。计算机动画是计算机图形学和艺术相结合的产物,它是伴随着计算机硬件和图形算法高速发展起来的一门高新技术,它综合利用计算机科学、艺术、数学、物理学和其它相关学科的知识在计算机上生成绚丽多彩的连续的虚拟真实画面,给人们提供了一个充分展示个人想象力和艺术才能的新天地[12]。

其中三维动画特技可以说是电脑动画技术中的一大难题,因为这需要非常强大的软件和运算能力极强的硬件平台。当然,它所带来的视觉效果也是无可比拟的。当《侏罗纪公园》、《第五元素》、《泰坦尼克号》这些影片中逼真的恐龙、亦真亦幻的未来城市和巨大的“泰坦尼克号”让人沉浸在现代电影所营造的“真实”世界里时,你可知道创造了这些令人难以置信的视觉效果的幕后英雄是众多的三维动画制作软件和视频特技制作软件[3]。好莱坞的电脑特技师们正是借助这些非凡的软件,把他们的想像发挥到极限,也带给了我们无比的视觉享受。

三维动画特技制作包含了数字模型构建、动画生成、场景合成三大环节,而三维扫描、表演动画、虚拟演播室等新技术,恰恰给这三大环节都带来了全新的技术突破。综合运用这些新技术,可望获得魔幻般的特技效果,彻底改变动画制作的面貌。可以想像,先用三维扫描技术对一个80岁的白发老太太进行扫描,形成一个数字化人物模型,然后将乔丹的动作捕捉下来,用以驱动老人模型的运动,观众将会看到80岁老妪空中扣篮的场面。甚至还可以用演员的表演驱动动物的模型,拍摄真正的动物王国故事。利用表演动画技术还可以实现网上或电视中的虚拟主持人[3]。

三维动画技术比较

用于计算机三维动画制作的软件和工具目前很多,不同的动画效果,取决于不同的计算机动画软、硬件的功能以及各动画编程语言工具的特点。虽然制作的复杂程度不同,但动画的基本原理是一致的。

其中Java 3D是Java语言在三维图形领域的扩展,是一组应用编程接口(API)。利用Java 3D提供的API,可以编写出基于网页的三维动画、各种计算机辅助教学软件和三维游戏等等。利用Java 3D编写的程序,只需要编程人员调用这些API进行编程,而客户端只需要使用标准的Java虚拟机就可以浏览,因此具有不需要安装插件的优点。[1]它的这种体系结构既可以使其开发的程序“到处运行”,又使其能充分利用系统的三维特性。就因为JAVA 3D拥有如此的强大的三维能力,使得它在网络世界,特别是在游戏中能大展姿彩[1]。

与JAVA3D一样OPENGL也具有跨平台特性,许多人利用OPENGL编写三维应用程序,不过对于一个非计算机专业的人员来说,利用OPENGL编写出复杂的三维应用程序是比较困难的,且不说C/C++语言和java的掌握需要花费大量时间精力,当我们需要处理复杂问题的时候,我们不得不自己完成大量非常繁琐的工作。[7]当然,对于编程高手来说,OPENGL是他们发挥才能的非常好的工具。另外,以此开发出的图形要在

网络上展示,必须先生成图像,然后将图形一帧一帧地传输过去,效果不佳,是一个瓶颈[7]。

另有VRML2.0技术(VRML97)自1997年12月正式成为国际标准之后,在网络上得到了广泛的应用,编写VRML程序非常简单(VRML语言可以说比BASIC、JAVASCRIPT 等语言还要简单),同时可以编写三维动画片、三维游戏、用于计算机辅助教学,因而其应用前景非常广阔尤其适合在中国推广应用。不过由于VRML语言功能目前还不是很强(如目前没有形体之间的碰撞检查功能),与JAVA语言等其它高级语言的连接较难掌握,因而失去了一些计算机高手的宠爱。[7]DIRECT3D是Microsoft公司推出的三维图形编程API,它主要应用于三维游戏的编程,目前相关的学习资料难于获得,由于它一般需要VC等编程工具进行编程,需要编程人员具有较高的C++等高级语言的编程功底,因而难以普及[1]。

而JAVA3D是建立在JAVA2(JAVA1.2)基础之上的,JAVA语言的简单性使JAVA3D 的推广有了可能。OPENGL和JAVA3D之间的比较可以看成汇编语言与C语言之间的比较,一个是低级的,一个是高级的(也许这样比较不太恰当)。JAVA3D给我们编写三维应用程序提供了一个非常完善的API。它的低级API是依赖于现有的三维图形系统的,如Direct 3D、OpenGL、QuickDraw3D和XGL等,从高层次为开发者提供对三维实体的创建、操纵和着色,使开发工作变得极为简单[3]。它可以帮助我们:

1.生成简单或复杂的形体(也可以直接调用现有的三维形体)

2.使形体具有颜色、透明效果、贴图。

3. 可以在三维环境中生成灯光、移动灯光。

4. 可以具有行为(Behavior)的处理判断能力(键盘、鼠标、定时等)

5. 可以生成雾、背景、声音等。

6. 可以使形体变形、移动、生成三维动画。

7. 可以编写非常复杂的应用程序,用于各种领域如VR。

8.可以与Internet集成,将三维场景很好地展现在网页上,并通过编程实现良好的交互性。

二、主题部分

JAVA3D的历史现状及发展方向

JAVA3D技术为SUN公司继JAVA火爆成功后,于1997年推出的面向Internet的交互式三维图形应用编程接口(API),至今已有了1.3-1.6等多个更新版本,可用在三维动画、三维游戏、机械CAD等领域。[9]可以用来编写三维形体,但和 VRML不同,JAVA3D没有基本形体,不过我们可以利用JAVA3D所带的UTILITY生成一些基本形体如立方体、球、圆锥等,我们也可以直接调用一些软件如ALIAS、LIGHTWARE、3DMAX 生成的形体,也可以直接调用VRML2.0生成的形体。可以和VRML一样,使形体带有颜色、贴图。产生形体的运动、变化,动态地改变观测点的位置及视角。它还具有交互作用,如点击形体时会使程序发出一个信号从而产生一定的变化。[5]可以充分利用JAVA语言的强大功能,编写出复杂的三维应用程序。 JAVA3D具有VRML所没有的形体碰撞检查功能。作为一个高级的三维图形编程API,JAVA3D给我们带来了极大的方便,它包含了VRML2.0所提供的所有功能[7]。

Java3DAPI还可用来开发三维图形和开发基于Web的3D应用程序(applet)的编程