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

简介:

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

本文作者:文摘菌

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

相关文章
|
5天前
|
存储 安全 算法
|
2天前
|
算法 数据可视化 前端开发
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化(下)
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
|
2天前
|
算法 数据可视化 数据挖掘
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化(上)
r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
10 0
|
3天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型:从数据处理到算法优化
【4月更文挑战第28天】在数据驱动的时代,构建一个高效的机器学习模型是实现智能决策和预测的关键。本文将深入探讨如何通过精确的数据预处理、选择合适的学习算法以及进行细致的参数调优来提升模型的性能。我们将介绍一系列实用的技术和策略,包括特征工程、模型评估、超参数调整以及使用集成学习方法来增强模型的泛化能力。通过这些方法,读者将能够更好地理解并应用机器学习技术来解决实际问题。
|
6天前
|
移动开发 算法 数据可视化
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
|
7天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
33 12
|
7天前
|
算法 数据可视化 数据挖掘
【视频】关联规则模型、Apriori算法及R语言挖掘商店交易数据与交互可视化|数据分享
【视频】关联规则模型、Apriori算法及R语言挖掘商店交易数据与交互可视化|数据分享
42 14
|
10天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
25天前
|
机器学习/深度学习 算法
【MATLAB】GA_BP神经网络时序预测算法
【MATLAB】GA_BP神经网络时序预测算法
35 8
|
1天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到"result.txt"以供MATLAB显示图像分割效果。