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

简介:

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

本文作者:文摘菌

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

相关文章
|
16天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
16天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
97 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
95 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
1月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
87 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
3天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
110 80
|
22天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
8天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。

热门文章

最新文章