USD听得多,但实际是怎么在视效工作室中得以应用的呢?

2020-06-08 03:11:58

相信大家都对皮克斯的开源通用场景描述USD(Universal Scene Description)有所耳闻,但实际上,视效工作室是如何应用的呢?如何在Pipeline中使用USD,在各个DCC软件之间交换3D数据呢?

Luma Pictures可谓是USD使用者里面的表表者,率先使用USD,制作各种精美的视效,参与电影制作包括:《奇异博士》(Doctor Strange)、《惊奇队长》(Captain Marvel)和《蜘蛛侠:英雄远征》(Spider-Man: Far from Home)等。

现在让我们跟着Luma的软件主管Chad Dombrova学习如何应用USD,尤其是在Foundry Katana灯光和视效开发(Lookdev)的流程中:为什么这么做,怎么做!

复杂的视效制作面临的难题

2016年11月,在为《奇异博士》制作完视效不久后,Luma 全员飞往斐济团建,这部漫威电影对于Luma 来说,可称得上史上最复杂的制作之一。

Chad Dombrova:“很明显,这部电影是高水准的制作,但由于视效规模巨大,部分Pipeline被推到崩溃的临界点。主要痛点是Maya无法大规模地运行,在整个Pipeline中的操作不够灵活。”

最终制作团队决定从两个方面来解决这个问题:从Maya转换到Katana制作灯光和Lookdev,并围绕USD重建Pipeline。

Katana通过Pixar的usdKatana插件对USD提供了很大支持,现在由Foundry维护。所以,通过同时切换到USD和Katana,Luma能够利用Pixar经过测试的usdKatana插件来节省许多Katana开发任务,从而腾出时间专注核心的USD Pipeline,并为Katana添加了面向艺术家们的更多工具。

Luma Pictures制作的《蜘蛛侠:英雄归来》最终视觉效果

团队花了三个月时间开发,然后就在《蜘蛛侠:英雄归来》中使用USD和Katana进行了制作。自决定开发USD以来,将近四年的时间,Luma已成功地将USD集成到主流软件中:Katana, Maya,Nuke,Houdini,Arnold和Mari。

Luma Pictures Katana模板

Luma本身也创建了多个开源项目,联合Pixar,Foundry等其他重度使用USD的工作室,如Animal Logic。

Chad Dombrova:“我们的usdArnold支持各种DCC的着色器Importers(导入)和Exporter(导出),以及Hydra Render Delegate,并从此成为Autodesk官方arnold-usd的基础。Maya-to-Hydra是Maya的Hydra场景代理,目前它已经被整合到Autodesk官方Maya-usd中。并且UsdQt提供了一组用于创建USD用户界面的Qt模型。”

在布拉格拍摄的《蜘蛛侠:英雄远征》的镜头制作,以及初始的 CG渲染

Luma Pictures最终的视效镜头

USD + Katana组合为Luma Pictures解决了哪些难题?

Luma的制作包含很多复杂的视效,而且经常使用许多不同的工具和文件格式,使用USD可以帮助解决数据交换的难题。USD实际上提供了一种通用格式,来加载常见的对象,比如像在许多不同软件应用中的Cameras(相机)和Meshes(网格)等。

USD 更多的提供了,像分层、文件之间引用、各层之间属性值的覆盖,版本切换等,例如高、中、低级别细节切换,延迟加载,程序化生成场景,等许多其他功能特性。

《蜘蛛侠:英雄远征》中的熔岩人的Pre-final渲染

最终的效果和灯光

从之前重度使用的Alembic切换到USD,给工作室提供了一种可以展示和组织整个镜头的方法,而不仅仅是轻量级的缓存。Chad Dombrova解释道:达到这种程度的完整性意味制作的镜头可以在软件之间真正地完全移植。

USD和Katana应该在什么地方开始组合呢?在灯光和Lookdev这一步,这也是Luma使用Katana的目的。作为USD开发的一部分,Luma工作室编写了一个基于LookFileBake API的usdShade Exporter——将材质及其绑定的资产导入到USD。

Chad Dombrova:“这个过程使用了我们的usdArnold库,增加了对AOVs和对象属性(如subdiv设置)的支持,所以Lookdev艺术家可以将它们与资产一起传输到之后的灯光场景。”

Luma Pictures的Katana节点图

Chad Dombrova:“我们的Katana开发组长Nathan Rusch,多次改进和修复usdKatana插件,包括对usdVol volumes和usdSkel agents的导入支持、以及在上游PxrUsdIn阶段用于管理图形状态的自定义节点。这可以让我们将USD场景管理UI集成到节点图中。”

Katana和USD如何应用在视效制作流程中?

那么,这一切在Luma日常制作中如何得以应用呢?Chad Dombrova表示:“工作室的常规做法是尽可能在序列级别上操作。灯光,特效和合成艺术家创建场景文件,这些文件会成为类似序列的模板。”

《蜘蛛侠:英雄远征》另一个关键场景

然后,Luma使用定制的批量提交UI和基于事件的编排引擎Rill,自动在镜头序列中以及镜头Pipeline的步骤中传播更改。最后,Pipeline中任何导出都会自动触发下游合成的再生。

对于一个大序列,里面许多镜头共享相似的资产和灯光设置,通过Katana和USD结合,使得屈指可数的艺术家们也能管理数百个镜头。

在《蜘蛛侠:英雄远征》中有一个序列,在布拉格的广场,熔岩人与蜘蛛侠激烈的打斗。当资产艺术家发布了新版本熔岩人的资产时,将自动重新导出动画,重新生成熔岩模拟和场景灯光渲染,并为序列中的每个镜头重新创建最终合成,无需人工操作。

除了《蜘蛛侠:英雄远征》,Luma还在《蜘蛛侠:英雄归来》《雷神3:诸神黄昏》和《猛禽小队和哈莉·奎茵》等多部电影中运用了这种端到端的程序化Pipeline。

Chad Dombrova:“Katana是这种工作流程的中坚力量,因为它能够在节点图中清晰的展示每次制作中的复杂变化。”

为什么USD如此重要

从场景的复杂度和镜头吞吐量上来说,USD和Katana的结合让Luma能以前所未有的规模进行制作。

制作规模比应用USD和Katana之前高出了几个数量级,而且离上限还很遥远。Luma曾制作过这样的项目,一个灯光师就能从单个Katana脚本中输出100多个镜头,而且脚本在几秒钟内就可以打开,这完全是一个巨大的改变。

素材源自befores & afters

上一篇:瑞云渲染直播预告:CG场景制作秘籍

下一篇:瑞云渲染直播预告:AI技术在动画制作中的最新应用