多媒体技术之动画概述Word文件下载.docx
《多媒体技术之动画概述Word文件下载.docx》由会员分享,可在线阅读,更多相关《多媒体技术之动画概述Word文件下载.docx(81页珍藏版)》请在冰点文库上搜索。
电视——罗盘旋转扫描器]
⏹[1891年美T.Edison(爱迪生):
活动电影视镜]
⏹[1895年法L./A.Lumiere兄弟——电影放映机]
⏹1906年美J.Blackton:
第一部动画片——滑稽的面孔
⏹1928年美W.Disney(迪斯尼)第一部商用动画片
⏹[1937年英国开始黑白电视广播]
可见,动画的发明要早于电影和电视。
●计算机动画
⏹1963年Bell实验室:
第一部计算机动画
⏹1974年P.Foldes:
动画片“饥饿”在戛纳电影节上获奖
⏹1991/1993年:
终结者II/侏罗纪公园均获奥斯卡最佳视觉特效奖
随着计算机硬件设备和三维图形技术的飞速发展,计算机动画,特别是其中的三维模型动画,在动画行业起着越来越重要的作用。
5.1.3应用领域
传统动画主要用于动画电影的制作,也少量用于电视广告和电化教学等方面。
计算机动画则渗透到运动视觉媒体的方方面面,应用领域十分广泛,包括电子/计算机/网络游戏、电影和电视特技、(二维辅助和三维模型)动画片制作、动态广告、模拟器(飞行/汽车)、教育(MCAI多媒体计算机辅助教学)、科研(可视化)等等方面。
5.2传统动画
传统动画历史悠久,技术已经非常成熟。
在现代计算机技术的帮助下,现在仍然充满活力。
而且,计算机动画,也是在传统动画的基础上发展起来的,借鉴了很多传统动画的技术和概念。
所以,在讨论计算机动画之前,有必要简单介绍一下传统动画的基本内容。
本节先引进动画的传统概念及其改进,然后讨论传统动画的制作过程,最后介绍动画的相关术语和常用特技。
5.2.1动画的概念
动画的英文是animation,基本含义为生气活泼、热情兴奋。
其词根anima具有生命,灵魂的意思(派生词animate:
活的、有生命的;
animal:
动物)。
下面是动画的若干定义:
●简单定义:
动画是动态生成系列相关画面以产生运动视觉的技术。
●复杂定义:
(传统)动画(片)是一门通过在连续多格的胶片上拍摄的一系列单个(绘制)画面,并以一定的速度放映,从而产生运动视觉的技术。
●定义的修改:
(以适应现代[计算机]动画)
⏹画面纪录:
胶片上→磁盘、磁带、光盘等存储介质;
⏹放映设备:
银幕→电视、显示器、投影仪等;
⏹运动对象:
实体运动→颜色、纹理、灯光等的改变。
动画片(animation)又叫卡通片(cartoon,[报刊上的政治性]漫画)是利用动画技术制作的动画影片或电视节目。
注意,虽然动画与电影电视都是利用系列相关图片来产生运动视觉,但是在上面的动画定义中,都强调动画中的图片帧是人工绘制或计算机生成的[图形]画面(而电影和电视中的图片帧则主要是用摄影机和摄像机拍摄出来的实物影像[图像])。
5.2.2动画的制作
●传统动画的制作过程(参见图5-1)
图5-1传统动画的制作过程
在传统动画的制作过程中:
⏹“设计稿”的制作是最困难的,因为它包括了包括人物、造型、动作、色彩、气氛等等的设计。
⏹“测试”中一般使用的是铅笔稿。
⏹“后期制作”包括编辑、剪接、对白、配音、字幕等等内容。
⏹在动画制作过程中,与电影和电视剧差别最大的一步是“声音节拍”。
电影和电视一般都是后期配音或同步录音,而动画则是绘制画面之前,先确定声音和节拍,这主要是为了减少画面的绘制工作量。
在电影和电视制作中,往往需要拍摄大量实物影像作为素材,在后期制作中再进行大刀阔斧的裁剪,最后播出的胶片和磁带往往只是全部拍摄内容中的一小部分。
而动画中的一幅幅画面,都是技师和画工辛辛苦苦一笔一笔画出来的,耗时费力。
一秒钟的动画需要24到30幅画面,一个半小时(90分钟)长的一部动画片则需要画约13万到16万多张图画,工程浩大。
因为动画的画面内容,必须与声音匹配和同步,所以先期确定声音节拍,就是为了在后期制作时,减少裁剪,从而节省画面绘制的工作量,同时也节省了时间和费用。
●常用动画名词
⏹格——一个画面,动画片的最小单位。
十分钟的动画(24帧/秒)需14,400格。
⏹幅——每个画面通常由若干张[透]明片叠合而成,每张“明片”为一个对象(的某一部分),称之为幅
⏹关键帧——动作的极限(主要/转折)位置,通常由老师傅来画
⏹小原画——两个关键帧之间的若干小关键帧,由小画师画
⏹中间画——两个关键帧之间的若干过渡画面,可由普通画工来画
●动画特技
常用的传统动画特技有:
摇转、推拉、翻转、渐显/隐、淡入/出、卷切等。
5.3计算机动画
5.3.1概念
计算机动画(computeranimation)是用计算机生成一系列可供实时演播的连续画面之技术。
计算机动画,可以按照所使用技术的高低,分成如下几个等级:
●图形编辑(叠加、着色、特技)
●中间画生成(变形)
●活动对象操纵(位置、属性、算法、运动)
●角色定义(语义级,术语规定)
●智能动画(故事动画,可学习和扩充)
5.3.2分类
可以依据不同特征来对计算机动画进行分类:
●按计算机所起的作用,可以分为:
⏹计算机辅助动画——传统二维动画的补充,利用计算机辅助工作。
如填色、叠加、生成中间画、制作特效等,如动画片花木兰和二维游戏;
⏹模型动画——三维造型、动作设计、场景渲染等。
如动画片玩具总动员和三维游戏。
●按使用技术的等级,可以分为:
⏹低级——需人工显示规定每个物体和人物的位置、属性、各种运动参数,如现有动画系统和软件;
⏹高级——可用通用术语来规定运动、智能化。
正在研制开发。
●按播放时间,可以分为:
⏹逐帧动画——先生成后播放,对硬件性能要求不高。
如早期的动画系统和软件;
⏹实时动画——边生成边播放,对硬件性能要求较高。
如早期的SGI工作站和现在普通的PC机,电子游戏。
●按控制方法,可以分为:
⏹关键帧动画——简单运动学;
⏹算法动画——复杂运动学,部分动力学;
⏹物理动画——自动控制,动力学(落体、流体、变形、爆炸),随机、分形。
●按动画的维数,可以分为:
⏹2D——简单,平面美术设计。
如软件Flash和动画片花木兰;
⏹3D——复杂,三维造型、动作设计、透视、消隐、光照、材质、场景渲染等。
如软件3DS和动画片玩具总动员。
二维动画和三维动画的分类,与辅助动画和模型动画的分类是一致的。
●按生成的方式,可以分为:
⏹矢量——采用图形学的方法生成动画,记录的是图形的各种参数。
在演播时,可以实时渲染,也可以先渲染好(称为位图系列)后再播放。
如Flash和3DS;
⏹位图——动画以位图形式出现,可以是矢量动画渲染后的结果。
如GIF动画、fli、avi、mov。
●按画面的分辨率,可以分为:
⏹低——320*240(VCR/VCD级);
⏹中——1K*1K(16mm胶片/DVD级);
⏹高——2K*2K(35mm胶片级);
⏹超——4K*4K(70mm胶片级)。
常用的计算机动画分类方法,是辅助/模型或2D/3D动画。
5.3.3技术
●技术基础:
计算机图形学、数字图像处理、三维几何造型、真实感图形、物理造型、人体动画等等
●相关学科:
美术、绘画、力学、人体运动学、机器人学、生物学、生理学、心理学、人工智能、计算机科学等等
●研究内容:
形体造型、运动控制与描述、图形绘制、动态模拟、集成环境、关节/人体运动、动画语言系统、硬件接口、特技
●三维图形学
三维图形学是三维造型、三维动画和虚拟现实的基础和核心。
⏹三维造型:
物体表面/三角形、简单物体/自然物体/人体
⏹真实感图形:
透视、消隐、材质、纹理、光照、渲染
●3D标准
常见的三维图形、动画、以及虚拟现实系统的标准有:
⏹国际标准:
◆开放图形库——OpenGL(OpenGraphicsLibrary);
◆虚拟现实建模语言——VRML(VirtualRealityModelingLanguage);
◆可扩展三维——X3D(eXtensible3D,基于XML)。
⏹事实标准:
◆直接三维——Direct3D(MicrosoftDirectX的组成部分);
◆爪哇三维——Java3D(Sun领导的JCP)
●2D标准
常见的二维网页图形动画的标准有:
◆可伸缩矢量图形——SVG(ScalableVectorGraphics,基于XML);
◆闪光——Flash(Macromedia公司的产品)。
5.4动画制作的软件、语言和接口
动画制作可以分成两类:
●用户级——使用现成的商用动画制作软件和描述性的动画描述语言,进行复杂的3D造型和简单的动画设计。
对使用者要求不高,但是产品的交互性不够、效率也不高。
●程序员级——使用高级语言和图形动画API,进行简单的3D造型和复杂的动画设计。
对程序员要求较高,但是产品的交互性好、效率也很高。
这两类方法各有特点,具有一定的互补性,且各有自己不同的主要应用领域。
下面列出常见的动画制作软件、描述语言和API。
5.4.1动画制作软件
常见的动画制作软件有:
●二维动画
⏹位图动画(GIF)
◆台湾友立公司的UleadGIFAnimator
◆微软公司早期的MicrosoftGIFAnimator
◆Liatrosoft公司的BabarosaGifAnimator
◆gamaniproductions公司的GIFMovieGear
◆RighttoLeftSoftware公司的AnimagicGIFAnimator
⏹矢量动画(Web)
◆Macromedia公司的Web二维矢量动画软件MacromediaFlashMX
◆DJJHoldings公司的Swish
●三维动画
⏹台湾友立公司的三维文字制作软件UleadCool3D
⏹Autodesk公司之多媒体子公司Discreet的三维造型与动画软件Discreet3dsmax
⏹Alias|Wavefront公司的三维动画软件Maya
⏹AmabilisSoftware公司的自由三维动画软件3DCanvas
5.4.2动画描述语言
动画描述(标记)语言主要有如下三种基于Web网(.,World-Wide-Web万维网)的国际标准:
●三维图形动画和虚拟现实的Web3D标准
⏹VRML(VirtualRealityModelingLanguage虚拟现实建模语言)
⏹X3D(eXtensible3D可扩展三维,基于XML)
●基于XML的二维图形和动画标准
⏹SVG(ScalableVectorGraphics可伸缩矢量图形)
后面的5.5~5.7节会对它们分别加以简单的介绍。
5.4.3动画编程接口
常见的图形动画编程接口(API)有:
●国际标准:
⏹开放图形库——OpenGL(OpenGraphicsLibrary);
●事实标准:
⏹直接三维——Direct3D(MicrosoftDirectX的组成部分);
⏹爪哇三维——Java3D(Sun领导的JCP)。
OpenGL源于SGI公司的GL(GraphicsLibrary图形库),是国际组织OpenGLARB(ArchitectureReviewBoard体系结构评审委员会)推出的二维和三维图形动画API的标准。
最初版本是1992年7月1日推出的OpenGL1.0,目前的最新版是2004年9月7日推出的2.0版。
GL和OpenGL是现代所有二维和三维图形与动画API的鼻祖,经典规范、技术成熟、算法先进、内容丰富、应用非常广泛。
OpenGL是一套完整开放的图形函数库,跨平台且语言中立(主要针对C/C++),广泛用于大型机和专业级的应用程序开发,也可以用于PC机和Windows平台(通常PC机的图形显示卡都会同时提供OpenGL和Direct3D的驱动模块)。
后面的5.8节将会简单介绍OpenGL的VisualC++编程。
Direct3D作为DirectX的最重要组成部分,在微软公司的Windows平台上使用十分广泛。
Direct3D最初是于1996年随DirectX2.0推出的,现在的最新版本是随DirectX9.0c的2006年8月更新版推出的D3DX9正式版和Direct3D10的预览版。
Direct3D的功能强大、效率高、更新快。
不足之处是只局限于Windows平台,而且只是一个公司的私有产品,开放性不够,在技术上也不太稳定。
Java3D是Sun公司提出的Java语言的有机组成部分,它是在OpenGL基础上开发出来的。
Java3D的1.0版是于1998年11月随Java2(JDK1.2)正式推出的,当前的最新版本为2006年2月推出的Java3D1.4.0,而1.5.0版还处在开发过程中。
Java3D的功能也很强大,而且跨平台,由多个公司和组织参加的JCP(JavaCommunityProcess,Java社团进程)负责其管理和开发,技术先进且稳定。
不足之处是,Java虚拟机会在一定程度上影响其速度,而且只能用于Java语言。
5.5VRML
VRML(VirtualRealityModelingLanguage虚拟现实建模语言)是一种可以在万维网上发布的,采用文本信息描述交互式三维场景的文件格式。
VRML文件描述了基于时间的三维空间——虚拟现实,它包含了图形对象和听觉对象,可以通过多种机制动态修改。
VRML定义了一种把三维图形和多媒体集成在一起的文件格式。
在语法上,VRML文件是一种显式地定义和组织三维多媒体对象的集合;
在语义上,VRML文件描述了基于时间的交互式多媒体信息的抽象行为。
下面先介绍VRML发展的简单历程,然后列出若干VRML的基本特性,接着简介VRML的核心概念和体系结构,最后给出两个简单的VRML示例。
5.5.1发展简史
下面是VRML的发展简史:
●1992年底SGI公司(的GavinBell和PaulStrauss等人)在OpenGL的基础上推出了面向对象的三维图形文件格式OpenInventor(开放发明家);
●1994年初MarkPesce与TonyParisi开发出可以显示3D图形的迷宫(Labyrinth)浏览器;
●1994年5月召开的第一届万维网年会上,Pesce、Parisi、Bell、Strauss与Intervista软件公司的AnthonyParisi等人,开始构思VRML。
最开始VRML的原文为VirtualRealityMarkupLanguage虚拟现实标记语言,后来才将Markup(标记)改为现在的Modeling(建模),使其更为名副其实;
●1994年10月召开的万维网秋季会议上,SGI公司提出了由MarkPesce起草的VRML草案,它是将OpenInventor的一个子集,加以修改和网络功能扩充后的一种结果;
●1995年5月8日该草案经过若干修改后成为万维网标准VRML1.0;
●1996年8月4日VRML联盟(VRMLConsortiumIncorporated)又推出VRML2.0;
●1998年1月VRML成为国际标准VRML97:
(先推出来的只是标准的第1部分,标准的第2部分直到2004年3月3日才推出)
⏹ISO/IEC14772-1:
1997Informationtechnology--Computergraphicsandimageprocessing--TheVirtualRealityModelingLanguage--Part1:
FunctionalspecificationandUTF-8encoding信息技术——计算机图形学和图像处理——虚拟现实建模语言——第1部分:
功能规格与UTF-8编码
⏹ISO/IEC14772-2:
2004Informationtechnology--Computergraphicsandimageprocessing--TheVirtualRealityModelingLanguage(VRML)--Part2:
Externalauthoringinterface(EAI)信息技术——计算机图形学和图像处理——虚拟现实建模语言——第2部分:
外部著作接口(EAI)
5.5.2基本特性
VRML文件是一个基于时间的三维空间,包含了可以通过多种机制进行动态修改的图形和听觉对象。
VRML具有如下的基本特性:
●VRML可以通过包含关系将多个文件(包括VRML文件和其他标准图像、声音和视频文件等)组织在一起,层次性的包含关系使得创建任意大动态场景成为可能;
●VRML内建了支持多个分布式文件的多种对象和机制,适用于分布式环境;
●VRML采用C/S(客户/服务器)访问方式,实现了平台无关性;
●VRML使用了(优于普通3D建模和动画的)VR实时3D着色引擎,能提供更好的交互性。
VRML还提供了6(3个方向的移动和转动)+1(与其他三维空间的超链接)个自由度;
●VRML采用ASCII文本来描述场景和链接(似HTML和XML)。
也可以压缩成.zip和.rar文件,还有二进制文件格式;
●VRML具有可伸缩性,能够适应不同的硬件设备和网络环境,还可以进行扩充(可以根据需要,来定义自己的对象及其属性,并通过原型、描述语言等机制,使VRML浏览器能够解释这些对象及其行为)。
5.5.3概念与结构
虚拟现实VR(VirtualReality虚拟现)的场景由节点(node)对象组成,有三类节点:
用于视觉和听觉等表现对象的感受器(sensor)节点;
参与事件产生和路由机制、形成路由图、确定世界随时间推移如何动态变化的脚本(script)节点;
(参见图5-2)还有一类是把一组节点组织起来的分组(Grouping)节点,它在节点之间形成了父子关系。
参见图5-3。
图5-2场景图事件体系中的事件流程
图5-3场景图的层次关系
5.5.4使用方法
VRML一般保存为单独文件,通常用wrl(world)作为扩展名。
需要VRML专用浏览器、或安装了VRML插件的普通浏览器,才能浏览VRML文件。
VRML的浏览器和插件,可以参考网页:
...web3d.org/x3d/vrml/tools/viewers_and_browsers/。
VRML的访问方式是基于客户/服务器模式,其中服务器提供后缀为.wrl的VRML文件及支持资源客户通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式访问该文件描述的虚拟境界(VirtualWorld)。
可以利用<
EMBEG>
或<
OBJECT>
标签将VRML文件嵌入到HTML文档中,也可在VRML文件中,使用脚本节点来引用编译过的Java字节码(VRML97),还可用JavaApplet等与VRML浏览器进行通信(EAI)。
下面是VRML浏览器的概念模型(参见图5-4):
图5-4VRML浏览器的概念模型
5.5.5例子
下面是一个VRML世界的简单VRML例子(取自VRML1.0标准):
●VrmlWorld.wrl
#VRMLV1.0ascii
Separator{
Separator{#Simpletrack-lightgeometry:
Translation{translation040}
Separator{
Material{emissiveColor0.10.30.3}
Cube{
width0.1
height0.1
depth4
}
Rotation{rotation0101.57079}
Material{emissiveColor0.30.10.3}
Cylinder{
radius0.1
height.2
Rotation{rotation-1001.57079}
Material{emissiveColor0.30.30.1}
Rotation{rotation1001.57079}
Translation{translation0-.20}
Cone{
height.4
bottomRadius.2
Translation{translation0.40}
radius0.02
SpotLight{#Lightfromabove
location040
direction0-10
intensity0.9
cutOffAngle0.7
Separator{#Wallgeometry;
justthreeflatpolygons
Coordinate3{