业界 | 皮克斯经典动画电影怎样炼成?离不开数学、模型和算法

简介:

Pixar用技术带领动画师摆脱简单多边形的束缚,用几何学把故事描述得更加完美。

82ef1b6e7c0ceb578b44beadd626a01b48902213

Tony DeRose在纽约数学博物馆讲厅的坐席间不断穿梭。他身着花哨的带扣T恤,一身Pixar员工的标准打扮,横竖看起来都不像印象中的刻板科学家。

他向观众席问好,其间坐着一群技术宅气质的小孩子、他们的爸爸妈妈、爷爷奶奶、数学老师、科学老师,当然还有年龄一把的数学宅及其朋友们。

一个二十来岁的小伙子,曾经在《汽车总动员2》的群体动画中有所贡献,把自己妈妈也带到了现场。这位母亲想见识一下DeRose是怎样带领团队把她儿子所做的工作搬上大荧幕的。

Derose说:“看到这么多各型各色的人都来听今天的演讲,感觉很棒。”登上讲台后,他问:“你们当中有多少人看过皮克斯(Pixar)的电影?”全场的人都举手了。“看过三五部的有多少人?”他停顿了一下,“那看过全部的呢?”最终有几十个观众举了手,差不多占到全场人数的四分之一。

动画师和游戏设计师也要研究微积分和组合数学

DeRose今天演讲的主题是“电影中的数学”。该主题就是他的本职工作:将算数、几何和代数的理论应用到软件中,从而渲染出物体或者驱动物理引擎。他解释说,无论是在皮克斯还是在其他电脑动画或电子游戏工作室,这道流程几乎是差不多的。

他今天在这儿的目的之一就是告诉大家,动画师和游戏设计师如果对事业有更高的追求,那么数学基础一定要扎实。

作为皮克斯的资深科学家,DeRose可不止是数学功底过硬,他还拥有计算机科学的博士学位,专攻计算物理学,曾在华盛顿大学做过十年的计算机科学与工程学教授。

DeRose此次演讲,是数字博物馆在曼哈顿中城新园区举办的“数学奇遇”系列演讲(Math Encounters lecture series)的首场。

在此之前,DeRose已经做过数次类似的演讲了,他每次都会分享皮克斯技术的新进展,回应粉丝们对新电影的期待。

8086e9b4066d2d0c25223443ec0f867f69f2f799

在皮克斯动画制作中,头发、衣服、液体和气状物(比如云、烟雾和火)都有各自的物理引擎。这些基础引擎会根据具体情况进一步得到增强,以生成更为精确的效果。

DeRose说,“模拟水不难,难的是,怎样让模拟出来的水更像真实的水,可以被引导着向某方向流动。”

在动画《勇敢传说(Brave)》中,女主角梅莉达那满头浓密的动感十足的亮红色卷发就需要全新的物理引擎来模拟。

工作室的动画师绞尽脑汁,要让梅莉达的头发漂亮、富于表现力,甚至比真头发还要真。当然,这样的秀发模型所需的计算量还得在计算机能承受的范围之内。

动画电影里的头发、衣服、液体和气体都有各自的物理引擎

DeRose说:“在现实世界里,发丝一直在发生着碰撞,这样才显得头发富有弹性且很浓密。梅莉达的头发包含了10万个单独的有限元。如果你懂点组合数学的话,就会知道,如果有n个物体,就会产生出n²种碰撞的可能。”

对于梅莉达的头发,那就是100亿种碰撞的可能了。怎样才能在短时间里渲染出这么多种头发碰撞的情形呢?

对此,皮克斯设计出了一个新的空间数据结构,在不会过度损耗的情况下剔除无用的碰撞可能。

皮克斯就是要针对头发模拟创造出PNG或FLAC这种高水准的压缩算法,摒弃MP3或JPEG这类虽然省时间但是很粗糙的算法。

620a981bb54f931c13bb5dc08366e71846e6bb29

DeRose提到,计算机动画通常要模拟超大规模且又十分精细的物理模型,与物理学家平时进行的科学计算相比有过之而无不及。他的主要工作就是为物理模拟寻找更优的算法,在保证规模的同时还要兼顾细节。

DeRose说,“导演经常说‘唉,这只是背景里一个很细微的东西,看不到的。’导演其实是在撒谎。”

如果导演哪天又冒出新点子,致使物体或角色的物理机制发生改变,整个模拟过程就得重头再来,那样即使皮克斯所有的四个团队同时开工,也没法保证一年出一部片子。

从多边形到曲面

DeRose对计算机动画制作最重要的贡献,就是设计出可快速生成高还原度的平滑曲线的算法,“主要问题就是将复杂的形状分解为计算机可以生成的图形。”

多年来,在计算机动画和电子游戏制中,都是用平面或多边形来表示三维物体。

然而,使用多边形的问题在于,放大细节看时还是能分辨出一个个多边形的棱角,尤其当略过单帧画面或个别像素时,就更容易产生这种错觉。业界的趋势是用曲面取代多边形,因为曲面在放大缩小画面时候都是平滑连续的。

但曲面仍然需要被迅速拆解成有限个数的点或者平面。对此,数学家发明了各种能快速生成平滑曲面的方法。这些曲面通常称为“细分曲面”(subdivision surfaces),因为他们是通过不断对线段取中点并连接而得出的。

206839848bafea71bb1aa8409928a74dd6eb674d

细分曲面在皮克斯出品的《棋逢敌手(Geri's Game)》中首次得到应用。这部动画获得了1997年奥斯卡最佳短片奖。相较于先前以多边形为基础的动画,这部动画实现了惊天动地的飞跃,一举奠定了“皮克斯风格”。

DeRose改进自己对多维曲面上小波计算的研究成果,设计出一个生成曲面的新算法。这一算法起初只是用来应对制作特别棘手的动画形象,比如老人的鼻子、衣服褶皱的摆动等。如今皮克斯电影里几乎所有物体都运用了细分曲面。

DeRose展示了《超人总动员(The Incredibles)》的一幅剧照,他指着画面背景说:“这座建筑、每一扇窗户,这些所有物体的细节都是用细分曲面生成的,也许你会为此感到惊讶。”

从Derose与其他计算机科学家在学术界做出的应用性研究,到个别动画短片的尝试,而今曲面细分算法已然成为CG动画的行业标准。

皮克斯、开源、和动画的未来

DeRose和他的皮克斯研究团队仍在持续发论文,并将新技术应用于他们的动画引擎。然而,皮克斯今非昔比,它的研发部门和专利软件已经不似从前在业界一枝独秀了。

以前,一个角色模型的光照和着色、定义各种动作的参数等问题,首先是数学上的难题,然后是写代码上的挑战。

但是如今,像Blender这样的开源软件,几乎可以媲美皮克斯自主研发的软件可以直接做这些了。2012年夏天,皮克斯竟然将自己细分曲面的代码库开源了。

对此,DeRose解释:“过去十年,我们皮克斯领先业界,但现在,我们得依靠大家的贡献才能创造更大的价值。”

皮克斯最大的竞争优势在于,它擅长以数学驱动技术,不满足于制作出更漂亮的图形,还要讲出更动人的故事。

DeRose和皮克斯并没有躺在已有的成就上睡大觉。DeRose对着观众席的孩子和大人说:“在某个地方的某个车库里,一个聪明的孩子和朋友们正在搞大事呢。他们不仅在用Blender这样的工具,还在改进工具。他们,将成为下一个皮克斯。”



原文发布时间为:2018-04-10

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“大数据文摘”微信公众号

相关文章
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
244 2
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
3月前
|
机器学习/深度学习 资源调度 算法
遗传算法模型深度解析与实战应用
摘要 遗传算法(GA)作为一种受生物进化启发的优化算法,在复杂问题求解中展现出独特优势。本文系统介绍了GA的核心理论、实现细节和应用经验。算法通过模拟自然选择机制,利用选择、交叉、变异三大操作在解空间中进行全局搜索。与梯度下降等传统方法相比,GA不依赖目标函数的连续性或可微性,特别适合处理离散优化、多目标优化等复杂问题。文中详细阐述了染色体编码、适应度函数设计、遗传操作实现等关键技术,并提供了Python代码实现示例。实践表明,GA的成功应用关键在于平衡探索与开发,通过精心调参维持种群多样性同时确保收敛效率
|
3月前
|
机器学习/深度学习 人工智能 算法
当AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
TimeGuessr融合AI与历史文化,首创时间与空间双维度评分体系,结合分段惩罚、Haversine距离计算与加权算法,辅以连击、速度与完美奖励机制,实现公平且富挑战性的游戏体验。
|
3月前
|
机器学习/深度学习 边缘计算 人工智能
粒子群算法模型深度解析与实战应用
蒋星熠Jaxonic是一位深耕智能优化算法领域多年的技术探索者,专注于粒子群优化(PSO)算法的研究与应用。他深入剖析了PSO的数学模型、核心公式及实现方法,并通过大量实践验证了其在神经网络优化、工程设计等复杂问题上的卓越性能。本文全面展示了PSO的理论基础、改进策略与前沿发展方向,为读者提供了一份详尽的技术指南。
粒子群算法模型深度解析与实战应用
|
3月前
|
机器学习/深度学习 运维 算法
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
基于粒子群优化算法的配电网光伏储能双层优化配置模型[IEEE33节点](选址定容)(Matlab代码实现)
234 0
|
3月前
|
机器学习/深度学习 数据采集 传感器
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
249 0
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
277 0
|
2月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
213 2
|
3月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
226 3

热门文章

最新文章