三维动画里的数学奥秘

你还记得动画电影《玩具总动员》里那个忠诚又机灵的牛仔伍迪吗?还记得《飞屋环游记》里那个八岁的探险家小胖罗素吗?和传统二维动画片相比,你会不会觉得还是三维动画的色彩更丰富,人物形象和情景更细腻、更逼真呢?是的,因为这类影片是利用日新月异的计算机技术处理、加工而成的新一代动画片。那你知道动画师是如何利用计算机技术制作动画片的吗?那些栩栩如生的人物形象是如何设计出来的呢?你可能没有想过,设计这些形象还和数学有着密不可分的关系呢!
  小小动画 巨大工程
  我们在观看动画电影的时候往往会感叹:“为什么这么短啊!”好看的动画电影在我们看来当然是越长越好,但实际上这些“太短”的动画电影能够呈现在我们面前可是凝聚了制作人员大量的心血与劳动。
  传统动画片的诞生过程
  二维画面是平面上的画面。用纸张、照片或计算机屏幕显示,无论画面的立体感有多强,终究只是在二维空间上模拟真实的三维空间效果。我们先来简单地了解一下像《木偶奇遇记》这类传统动画片是如何制作出来的。二维动画片里的画面看上去只有宽度和高度,动画师根据故事脚本用铅笔在纸上勾画出其中的人物和故事进展,然后在叫作“透明片”的塑料纸上为这些连续的画面着色。每一张透明片上的画面在电影里算作一帧,要制作一部动画片需要绘制出成千上万张这样的画片。接着,在手绘的彩色背景映衬下,用特殊的照相机把所有着了色的画片一一拍下,再用胶片把这些照片以每秒24帧的速度翻拍成电影。当然,在制作过程中还要加上对话、音效、音乐等配套工作。过去制作二维动画片是一项非常繁重的工作,现在随着计算机性能的提高,很多制作环节已经被计算机软件取代了,比如动画师可以直接用电子画板绘制画面,用计算机软件着色,模拟摄像机的运动和效果等。
  计算机上完成的三维动画片
  三维动画看上去既有宽度和高度,同时也有深度,因此表现得更真实生动。制作之前首先得有一个动人的故事脚本,然后绘制出其中的人物、主要场景和故事情节,并根据人物个性设计出他们的造型。接着把故事二维化,此后关键,就是在计算机的三维动画软件中为这些人物造型设计模型。为了让模型能做出各种自然的表情和动作,还要配上可操作的虚拟骨骼和肌肉运动工具。一切准备就绪以后,动画师就开始根据事先编排好的故事情节,像摆弄木偶那样操控模型的一举一动,让他们按照故事进展的需要说话、跳跃、奔跑等。再配上合适的虚拟灯光、背景、道具的效果和人物对话,在一个装有数百台高性能计算机的叫作“渲染农场”的地方,完成动画片每帧的制作以及帧的合成。后期加上修补、润色和音效,一部动画片就算基本完成了。
  制作一部长约90分钟的三维动画电影,其投入是巨大的。20年前的《玩具总动员1》,是世界上首部完全用计算机制作的动画电影,具有里程碑的意义。当时动用了27位动画师、22位技术指导、61位艺术家和工程师,设计了400个计算机三维模型。制作这部电影总共花了80万个机器工时、完成了114240帧的动画。而且渲染阶段相当耗时,就当时的计算机性能而言,117台计算机全天运行,1周能渲染完成3分钟的动画片段,90分钟的片子光渲染就需要花30周,7个多月的时间,而写故事竟然花了他们3年的时间,因此,用3、4年的时间制作完成一部动画片并不足为奇,有的甚至要花更长的时间。
  精益求精的主角
  牛仔伍迪是影片《玩具总动员》的主角,因此制作团队对他的模型设计要求特别高:他身上需要控制的活动点多达723个,其中脸部有212个,仅嘴巴就有58个。整部影片的合成渲染使用了117台计算机、300个计算机处理器。他的制作简直可以说是精益求精。
  数学概念 无处不在
  在生活中,我们看得见摸得到的任何物体都有形状,而大多数物体的形状都是由连续圆滑的曲线和曲面组成的。艺术家和动画师关心的是事物的形象和形状,而计算机能懂的只有一串串数字和方程式。如何让计算机模拟出看似简单的圆滑曲面或者说自然立体的形状呢?换个专业的问法就是,如何找出合理的计算机算法生成这样的图像呢?这就需要先找到合理的算术、几何、代数的运算法则,然后将这些数学运算法则翻译成计算机可以操作的语言来实现。
  如果你仔细观看动画片,可能不难觉察到,其实数学的概念无所不在。比如,《玩具总动员》里的伍迪从A点走到B点,就可以用方程式XB=XA+LAB表达伍迪现在在直角坐标系里的位置。
  动画人物伍迪在直角坐标系里平移的呈现
  如果突然看到一个人物或者道具随着镜头的拉近比原先的大了,比如说大了两倍,那就可以用方程得到变大的那个数。如果有物体旋转,就要涉及到更为复杂的包括正弦函数和余弦函数在内的三角函数理论,而平移、按比例缩/放、旋转都离不开坐标几何的应用。
  真实视效 数学助力
  上面曾提到,对于三维动画片来说,要解决的关键问题是,如何让人物和道具看上去像真的那样有着自然流畅的曲线和曲面。皮克斯动画工作室的科学家们找到了一种非常精妙的数学方法,解决了这个难题,这就是中点细分法,其中还用到了抛物线的原理。获得完美曲线的基本思路是从一条线段开始的,先把线段从中间对分,然后再把对分过的两段线再分别对分,按照这个规律一直分下去,找到每次对分线段的中点坐标。这一过程是可以用方程表现的。
  用这个基本解析几何原理,我们就可以把一个四边形变成一个椭圆形。首先画一个等边四边形(a),然后均分每个边获得8个点、8条线段(b),这时候图形基本没有变化。接着,把这8个点都按照顺时针方向移动线段长的1/2(c)。然后均分里圈上的线段(d),得到16个点。再把这16个点按照顺时针方向移动线段长的1/2,就形成了(e)比较圆滑的曲线。再细分下去就得到32个点的图形(f),如果还不满意,可以继续细分到64个点的曲线。
  用中点细分法不仅能生成曲线和自然形状,而且还能生成平滑的曲面。在三维动画计算机软件里,这些点和线组成的网格就像虚拟的骨骼和肌肉,可以任由动画师随意操纵。中点细分次数越多,物体表面越圆滑自然。
  一部动画片是否好看,不仅要看人物的脸部是否逼真,还要看他们运动时,以及周围道具和自然景观是否同样具有真实感,而这些视效也必须以数学为基础。
  动画片里用到的数学原理,有简单的算术,也有复杂的几何、函数、代数,甚至高等数学,如微分、积分。读了上面的大致介绍,当你再欣赏动画片的时候,不要忘了在那些美丽动人的故事背后还有数学的功劳。数学是研究科学问题的基础,无论你将来想从事化学、生物学、物理学,还是经济学等领域的工作,或者做动画片,都要学好数学。
  (责任编辑/王枫)
三维动画里的数学奥秘
三维动画里的数学奥秘
三维动画里的数学奥秘

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: