多媒体技术之动画概述.docx
《多媒体技术之动画概述.docx》由会员分享,可在线阅读,更多相关《多媒体技术之动画概述.docx(68页珍藏版)》请在冰豆网上搜索。
多媒体技术之动画概述
多媒体技术之动画概述
动画(animation)是运动的艺术,运动是动画的本质。
本章先介绍动画的差不多原理、进展历史与要紧应用,然后讲解传统动画和运算机动画的差不多内容。
重点放在图形动画的描述语言和运算机动画的制作上,要紧介绍VRML、X3D和SVG标准,以及位图动画和OpenGL的编程。
5.1概述
动画与电影和电视差不多上利用人的视觉滞留现象所产生的错觉来实现连续运动视觉的。
历史上,动画的发明要早于电影和电视。
运算机动画在电子和网络游戏、电影特技和动画片制作等方面起着决定性的作用。
5.1.1视觉滞留原理
电影、电视与动画差不多上利用人的视觉滞留[残留/暂留](persistenceofvision)现象的原理来工作的。
在上一章的眼睛与视觉部分的4.1.2小节差不多讲过,由于人眼感光细胞中的生物化学和生物物理学反应、以及视神经和视觉中枢的信号处理都需要一定的时刻,因此物体在眼睛的视网膜中成像后,并可不能赶忙消逝,而会保留25~200ms〔毫秒=1/1000秒〕,相当于5~40帧/秒。
因此,假如快速播放一系列相关的离散画面,就会使人产生连续的运动视觉〔幻觉〕。
下面电影、电视和动画的典型帧率:
●电影:
老片——16帧/秒、一般——24帧/秒、数字——30帧/秒
●电视:
PAL——25帧/秒、NTSC——30帧/秒、HDTV——25或30帧/秒
●动画:
10~100帧/秒
尽管动画与电影电视的工作原理相同,但电影和电视要紧是用摄影机和摄像机拍照出来的画面,而动画那么是人工或运算机画出来的。
5.1.2动画进展简史
●传统动画
⏹1820年英J.Paris:
圆盘两面画的旋转设备——thaumatrope〔幻影转盘,西洋镜〕
⏹1831年法J.Plaleau:
转盘狭缝——phenakistoscope〔转盘活动影像镜,诡盘玩具〕
⏹1834年英W.Horner:
转笼——zoetrope〔西洋镜,回转画筒〕
⏹[1839年法:
照相术——银版摄影术]
⏹[1884年P.Nipkow:
电视——罗盘旋转扫描器]
⏹[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〕。
能够利用或
下面是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}
Separator{
Material{emissiveColor0.30.10.3}
Cylinder{
radius0.1
height.2
}
}
Rotation{rotation-1001.57079}
Separator{
Material{emissiveColor0.30.30.1}
Rotation{rotation1001.57079}
Translation{translation0-.20}
Cone{
height.4
bottomRadius.2
}
Translation{translation0.40}
Cylinder{
radius0.02
height.4
}
}
}
SpotLight{#Lightfromabove
location040
direction0-10
intensity0.9
cutOffAngle0.7
}
Separator{#Wallgeometry;justthreeflatpolygons
Coordinate3{
point[
-20-2,-202,202,20-2,
-24-2,-242,242,24-2]
}