从《Toy Story》到《Alita》-20年角色渲染技术在电影工业中的进步

首先发布一则招聘广告:GalaSports深圳研发中心50-100万年package寻找渲染专家,本文底部有职位描述。

自从1995年第一部3D动画电影《ToyStory》诞生到现在,已经过去了二十多年,在这二十多年里围绕着角色的建模、动作、渲染诞生了无数新技术,无数的奥斯卡技术成就奖和让人大开眼界的视觉大作,电影工业也因此发生了翻天覆地的变化。导演和艺术家们的想象力推着科学家和工程师不停拓展人类技术的边界,每一年都有新技术诞生,每一年都有新的视觉大作基于新技术把视觉效果推向更高的水平:《2012》使用计算机集群并行求解大规模流体模拟;《人猿星球》和《怪兽电力公司》将毛发的物理模拟和渲染提升到新的量级和真实度;《本杰明巴顿》用LightStage对人脸进行高精度建模;《冰雪奇缘》使用新的算法对雪进行物理模拟;《阿凡达》采用虚拟摄像机,实现了整部电影虚拟场景整合到真实拍摄的工作流程,到今天《Alita》,达到令人叹为观止的真实和细腻,其实《Alita》的品质和新闻里传播的“800万像素“的眼球模拟并没有太大关系,这部作品角色技术的成功而是对近年来一系列新技术的的整合运用,本篇文章介绍一些与角色渲染相关的部分关键技术。

一.Physically Based Rendering 基于物理的渲染技术

光栅化渲染

早期的CG渲染技术使用的是一种叫做光栅化的技术,这种技术首先根据摄像头和三维物体的关系,计算三维虚拟空间中的物体在屏幕上的位置,再根据这个物体在屏幕上的“投影”,计算其所覆盖的每个像素的颜色,这种方法造成一个非常显著的问题:真实世界中的的场景,有成千上万的光线会在物体之间来回弹射从而产生间接光照,物体与物体之间的间接光照互相影响创造了丰富的细节,如果不去真正地模拟光线在空间中的传递过程和在物体表面的反射过程,无法产生令人信服的画面。

《ToyStory 1》:,1995,光照平庸,整个角色只受一个光源影响,环境光和间接光照只有一个颜色和一个强度,没有任何变化。图片来自 Pixar Animation Studios

《ToyStory 2》:1999,光照丰富有层次,但这是艺术家(灯光师)对每个镜头手工反复调整光照和优化皮肤材质的结果 图片来自 Pixar Animation Studios

光线追踪渲染

模拟光线在空间中的传递过程和在物体表面的反射过程,这种物理真实的光照计算所需的计算量极大,每一条光线遇到物体表面,又会被分解成无数条光线从半球面朝无数个散射出去,假设一个场景只计算一万条光线,每条光线被折射时只裂变成10条光线,只计算4次反弹,那么每一帧也要计算1亿条光线,而实际上,对于2k-4k分辨率普通品质的电影,每一帧所需要计算的光线都是百亿起,而在上世纪80年代,用光线追踪渲染一张256×256像素的单光源、极简单的画面(例如几个球),需要一台价值30万美金的IBM大型机渲染一整天,而更大分辨率的图像渲染是不可能的:内存根本装不下。

左图:光线追踪算法示意,右图:直接计算直射光线和开启光线追踪的效果差异

《ToyStory 3》:2010, 完整的PathTracing 模拟光线的物理传递过程,丰富细腻的光照和阴影效果,注意角色表面受地板反射的阳光的暖色区域,和手指头缝和头发所产生的阴影区域。

虽然1970年代就有人开始研究光线追踪的理论,但实际上真正应用到电影工业中,是2000年后,渲染引擎市场的兴起带来了这项新技术的传播,Arnold(阿洛德)渲染器是第一个支持光线追踪大规模普及的商业渲染引擎,而拍摄ToyStory的Pixar,直到2005年他们的RenderMan渲染器才开始采用光线追踪技术。

光线追踪算法主要的研究方向是更真实的光线模拟和更好的效果,以及更方便艺术家控制的参数系统,还有加速,即如何模拟更少的光线(采样)达到更好的效果,Path Tracing,Bidirectional Path Tracing,Multiple Importance Sampling,光线追踪算法越来越快,直到最近流行的基于神经网络降噪优化,结合GPU并行计算,30年电影行业的光线追踪不知不觉加速了上百万倍(相比1980年用CPU PathTracing算法的IBM大型机,和今天使用Redshift的渲染农场),从而使艺术家们可以渲染更复杂的光照,更大的场景,更多的细节,和更快速的制作流程。

《Gravity》:2013 ,使用Arnold渲染器 ,图片来自 Gravity (2013) – IMDb

基于PBR的材质

这世界上有成千上万种材质,玻璃、金属、皮肤、毛发、各种面料的衣服和饰品,而不同的材质对于属性完全相同(波长、强度、入射角)的两根入射光线,其反射光线的属性却是千差万别,有了物理真实的光线的计算,还需要物理真实的材质计算。

模拟光线在材质表面的反射始于1970年代,最早期的光照模拟是科研人员根据经验设计的公式,这种公式叫做BRDF(Bidirectional Reflectance Distribution Function),根据光线入射角和光强度两个变量,计算向各个不同放向的散射值。虽然经验公式能够实现光照的模拟,但并不精确,几年后,科研人员使用一种叫Goniometer的工具测量不同材质对光线的反射数据,这种设备将材质样本放在中央,周围是一个半球形的轨道或机械臂,通过移动机械臂上的光源和相机,对样本在半球面上不同方向的光源和不同方向的观测角的光线强度进行测量,从而测得一个完整的材质对整个半球面光线散射的分布数据。

左:Goniometer,BRDF测量仪器,右:半球空间的BRDF可视化

图片来自论文 https://www.researchgate.net/publication/253320236

根据这些测量数据,研究人员重新设计和优化了光照模型,并把这种模型叫做PBR材质,PBR材质能够以极高的真实度计算材质受光照后反射的颜色,直到2004年后,PBR材质才被广泛地运用在电影工业。

PBR材质技术能模拟任何真实材质,只要有合适光照和贴图

图片来自 https://marmoset.co/posts/physically-based-rendering-and-you-can-too/

Image Based Lighting 基于图片的光照

虽然基于物理的光照计算能够模拟非常真实的灯光环境,但在很多镜头中,制作人员并没有能力去创造一个宏大的场景,只是为了给角色真实的光照。除此之外,不少电影需要将虚拟角色渲染生成后叠加到真实拍摄的场景中,这就要求尽可能精确复制真实场景的光照环境。很自然地想到,我们可以用现实中通过拍摄周围的图像,组成一个球形光源来对角色进行渲染。这种灯光方法极大地减轻了电影制作的工作量并将渲染真实度提升到了以假乱真的水平。

左:电影拍摄现场,通过对镜面球和灰色磨砂球拍照来获取环境光图像数据,右:能获取更高清数据的全景照相机

二 . Skin Rendering皮肤和表情的渲染技术

Subsurface Scattering 次表面散射技术

左:反射、透射和次表面散射,右:半透明的兔子模型渲染

图片来自 https://www.rumblestrip.org/2014/06/03/sanity-testing-bsdfs/

很多人都赞叹《Alita》精致的半透明的机械身体,灯光师非常巧妙的布光,使光线透过白色象牙质的外壳,可以看到内部精巧的机械结构。这种光线进入半透明物体,在物体内部发生多次折射,再从物体内出来进入观测者眼睛的物理现象被称为次表面散射,次表面散射的模拟从2000年开始在电影行业得到应用,梦工厂的《史瑞克2》和Pixar的《超人总动员1》是最先使用这种技术的动画大电影,在所有的动画电影中,次表面散射主要用在角色皮肤的光照模拟。

左:次表面散射关闭的皮肤像岩石,右:次表面散射打开的皮肤晶莹剔透。

图片来自 Pixar Animation Studios

《Alita》:2019 次表面散射,透过手背的表皮,可以看到内部的机械结构

Light Stage capture

人类皮肤的次表面散射的复杂在于,日光进入人体后,较短波长的蓝光绿光会较快被吸收,而较长波长的红光在人体表皮和皮下组织里穿越较长距离,不同的波长对应着不同的散射距离和衰减速度,除此之外,进入皮肤光线的数量还受皮肤表层透光度、毛孔和皱纹结构,以及皮下组织结构的影响。虽然次表面散射很早就开始应用在动画电影中,但靠艺术家手工来制作这些皮肤的微小细节一直都无法达到以假乱真的品质。直到2008年,科研人员结合多种技术,首先使用一种叫Light Stage的测量仪器对面部进行高精度三维重建,不仅得到精确的3D模型,而且还有毛孔和皱纹的结构细节,然后使用物理正确的公式对不同波长光线在皮下组织衰减进行模拟,结合面部表情编码系统(FACS),电影工业才达成令人信服的写实的人的渲染。

https://www.zhihu.com/video/1085682775545376768

《终结者2》:1991中所用到的3D扫描设备

同时使用结构光、偏振光,在球面摄像机阵列上捕捉的数据。图片来自 http://ict.usc.edu/

最终三维重构的Digital Emily各种表情下的超高精度面部模型

图片来源 https://www.youtube.com/watch?v=piJ4Zke7EUw

Dynamic Facial Color Model 动态面部颜色模型

虽然基于Light Stage捕捉+次表面散射的方法能够得到令人信服的角色的渲染,但是角色表皮的颜色、透射率和皮下结构并不是静态的,角色在做不同表情,以及不同情绪状态下,皮下毛细血管的血液浓度变化非常剧烈,而脂肪、肌肉组织的伸缩也会导致透射率的变化,在最开始的时候,角色的皮肤颜色变化由艺术家逐个镜头、逐个表情在贴图上精细调整,从2009年开始,电影工业开始使用采集的数据和数学建模来还原这个自然现象。

挤压面部,不同血红蛋白浓度导致的面部颜色变化。图片来自 http://www.iryoku.com/skincolor/

考虑了表情对面部颜色影响后渲染的人脸。图片来自 http://www.iryoku.com/skincolor/

Facial Action Coding System (FACS)面部表情编码系统

Light Stage 虽然能捕捉精确地静态角色模型,但角色面部是一个由颅骨、肌肉、皮下脂肪、表皮组成的复杂系统,角色面部表情运动时,五官和面部并不是简单地移动位置,而是会有肌肉的伸缩和膨胀,组织之间的挤压,以及不同硬度表皮造成的皱纹变化,并且这种变化随年龄、人种和性别有巨大的差异,即使双胞胎也有不一样。FACS就是用来模拟这种变化的一种技术,其思路非常简单,首先为同一个角色的不同表情建造多个精细的模型,然后根据需要选择不同的模型进行变形融合,从而实现面部表情动画。

计算不同表情融合的数据库 Performance Flow Graph,所有表情都可以选取对应的静态模型并插值出来

FACS数据库中的一部分

图片来自 The Art of Digital Faces at ICT – Digital Emily to Digital Ira

https://www.zhihu.com/video/1085657335023808512

基于FACS技术实现的数字角色表情编辑

Physically–Based Character Simulation 基于物理的角色模拟

除了面部,身体同样是由骨头,肌肉、皮下脂肪,表皮组成的,角色肢体的运动同样会涉及到肌肉的伸缩和膨胀,组织之间的挤压,好在人对身体的辨识并不如对脸敏感,在影视行业,身体的这些物理形变多由软件模拟。

《The Jungle Book》物理模拟 https://www.zhihu.com/video/1085655959455633408

《The Jungle Book》2016中的角色肢体物理模拟

2015年,一群德国的科学家将人体模型按照不同的年龄、性别、BMI指数进行了大量测量和统计,建立了一个精确地人体动态模型数据库,将物理模拟和测量数据相结合,未来的角色肢体将更加精确。

数值精确的乳摇 https://www.zhihu.com/video/1085656818503450624

A Model of Dynamic Human Shape in Motion (SIGGRAPH 2015) 中抖动的人体

三 . Hair Rendering 毛发渲染

早期的动画电影一直都在避免有毛发的角色,例如《Toy Story》中,所有角色都是由塑料和金属组成。《侏罗纪公园1》中,所有恐龙都光秃秃,毛发渲染技术作为电影工业迫切的需要,从90年代开始发展,最开始使用互相穿插或多层半透明的三角面来模拟(这也是现在游戏行业实时渲染的普遍做法),后来采用分簇+贴图的渲染方式,但无论何种方式都无法达到理想的效果。

早期插片式和分簇+贴图的毛发渲染。图片来自 http://gamma.web.unc.edu/

早期的的毛发光照模型是一种各向同性的散射模型,由此造成早期动画电影中毛发渲染针状和圆柱状效果,2003年康奈尔大学的研究人员通过精细测量毛发的反射数值后提出了Marschner 模型,这个模型从物理上解释了毛发反射光线现象的原理,并提出了一个方程来描述这个物理现象,现代的毛发模型除了能真实地模拟毛发各向异性的品质,还会动态调整使用光线追踪进行渲染时时光线的精度和采样密度。

左:《Ice Age 1》 2002, 和右《Ice Age 3》 2008 毛发渲染对比,左图的毛发像针刺,右图柔软。 图片来自 http://Dreamworks.com

毛发的物理模拟也经过了长久的演化,早期研究人员使用质点弹簧系统模拟稀疏的头发簇,并基于头发簇模拟的数据带动周围头发的运动,现在的毛发物理模拟还会同时结合运动场和网状、多层细分的质点弹簧系统以提升效率和真实度。

《Brave》 中分层的毛发实现 https://www.zhihu.com/video/1085652946578075648

《Brave》2012 中的毛发,视频来自 https://www.fxguide.com/featured/brave-new-hair/

招聘广告:

GalaSports深圳研发中心50-100万年package寻找渲染专家

公司介绍: http://galasports.net

简历请发 微信号 hxflyer 邮箱 [email protected]

职位:渲染算法团队负责人

要求:

1. 计算机/数学相关专业毕业;

2. 数学功底扎实,精通图形学相关算法和游戏渲染技术;

3. 5年以上游戏公司从业经验,作为渲染算法工程师主导过项目开发,或实验室科研经验,作为主要作者发表过图形学领域论文;

4. 有较强的团队管理能力和优秀的沟通能力;

5. 有独立查阅行业最新论文和文献实现实现复杂算法的能力;

6. 图形学硕士或Ph.D学历优先,ACM竞赛经历优先,有较好审美能力优先,3A游戏公司工作经历优先。

工作内容:

  1. 带领渲染算法团队开发渲染算法,优化渲染管线,提示渲染品质

2. 与TA、3D美术一起制定技术标准和开发规范

3. 与科研团队一起实现图形学前沿算法

4. 管理团队并培养新人

参考:

https://www.youtube.com/watch?v=JG_9Jig2_z4

https://www.fxguide.com/featured/the-art-of-digital-faces-at-ict-from-digital-emily-to-digital-ira/

http://physbam.stanford.edu/~mdcong/pdf/artist_directed_facial_simulation.pdf

https://www.youtube.com/watch?v=qvnJ_wBiKUI

https://renderman.pixar.com

http://graphics.pixar.com/library/sigAsia2018Course/paper.pdf

http://gamma.cs.unc.edu/HAIRSURVEY/WBKMCL07.pdf

https://www.cs.cornell.edu/~srm/publications/SG03-hair.pdf

https://www.fxguide.com/featured/brave-new-hair/

来源:知乎 www.zhihu.com

作者:黄翔

【知乎日报】千万用户的选择,做朋友圈里的新鲜事分享大牛。
点击下载