编者按:
本文转载于公众号: VRayStation
作者:Shusen
译文:Hammer Chen
如需转载请与原公众号或原作者联系。
随着 V-Ray for Maya 与 V-Ray for Houdini 对 USD 文件格式的支持,我们来看看这个智能型格式,如何为 VFX 工作流程引进全新的档案通用性。
为了使当代视觉特效工作流程变得更容易、更灵活—现在 V-Ray 也支持 USD 格式了。这个巧妙的技术使得在各大 3D 软件平台和用户间共享模型、场景和动画数据变得更容易,甚至允许多个用户同时在同一项目上协作。
到底什么是 USD 格式?在这篇讲解文中,我们介绍了其工作原理、用途、如何将 USD 整合到 V-Ray 5 for Maya(https://www.chaosgroup.com/cn/vray/maya) 和 V-Ray 5 for Houdini(https://www.chaosgroup.com/cn/vray/maya) 中,以及我们对全新 USD 工作流程所能做的,令人振奋的未来计划。
youtube 视频(https://www.youtube.com/watch?v=3P8iUmzk2f0)
什么是USD?
USD 的全名为 Universal Scene Description(https://graphics.pixar.com/usd/docs/index.html)。USD 是开源档案交换格式,由皮克斯动画工作室开发,并由多家业界领先的工作室提出贡献。这个新的文件格式旨在支持大部分类型的三维场景和动画数据,并在三维创作、装配和工作流程工具之间交换数据。
除了互操作性,USD 还可实现非破坏性的迭代和新的装配工作流程方案。USD 还能让渲染器将其数据附加到场景描述中,因此着色器、材质、灯光、摄影机和环境都会在 USD 档中持续存在。
多年来,USD 已展现其巨大潜力,但在大多数艺术家开始充分利用其工作流程之前,这种文件格式需要得到多种三维创作工具制造商的支持。而支持最初是在 SideFX 将 Solaris(https://www.sidefx.com/products/houdini/solaris/) 添加到 Houdini 时开始的,已经扩展到Autodesk Maya 2022(https://www.autodesk.com/products/maya/features#universal-scene-description-usd-workflows),其附有 Maya USD(https://github.com/autodesk/maya-usd)的功能。
随着多种工具的支持终于到位,是时候让 Chaos 的开发团队将 V-Ray 支持添加到每个工具中了,因此工作室可在两个应用程序之间自由共享并组装资产,获得一致的 V-Ray 渲染结果。您将在 V-Ray 5 for Maya, update 1(https://www.chaosgroup.com/cn/vray/maya) 和 V-Ray 5 for Houdini, update 1(https://www.chaosgroup.com/cn/vray/houdini) 中获得对 USD 文件格式的支援。
做为制作项目的解决方案,能正确汇出所有关键的本地场景属性十分重要,我们认为这最好是由各个3D应用程序的制造商来处理。我们可将 V-Ray 材质附加到这个坚实的基础上,相信 USD 将随着应用程序与时俱进。
我们期待将类似的 V-Ray USD 支持添加到其他应用程序。随着 Autodesk 发布了3ds Max的 USD 测试版(https://help.autodesk.com/view/3DSMAX/2022/ENU/?guid=GUID-F53F713B-6A6F-49A2-A371-7C1CCEC87199),应该过不了多久,3ds Max 就可加入 V-Ray 的 USD 跨平台协作。
USD 让跟踪增量变化更容易进行
用于项目制作的 USD
随着时间的推移,工作室的工作流程已变得越来越复杂,涉及更多的 3D 工具。这是因为工作室对适合特定任务的工具有偏好,如建模、雕刻、模拟、照明、着色、合成、动画和装配。挑战在于,每个工具都有自身特有的存储和处理场景数据的做法。
某些中性的文件格式,如 OBJ、FBX 和最近的 Alembic 格式,已经拿来在 3D 软件之间交换数据,但以上这每种文件格式都只存储了原始场景的一小部分,而且没有一个格式是用来携带任何生产级渲染信息的。然而 USD 能保证的是,可在工作流程工具之间以近乎完全保真的方式共享数据。
例如,USD 档案能让一个部门在 Maya 中进行动画制作,而另一个部门在 Houdini 中进行模拟运算–在 V-Ray 的支持下,动画制作团队可在任何应用程序中渲染合并的结果。USD 还允许数据进行往返:可在 Maya 中创建资产,将其带到 Houdini 中模拟,然后再带回至 Maya 进行渲染。
Maya 中的USD
USD 的一个令人惊艳的特点是,对场景内容的更改是非破坏性的,修改以增量编辑的形式存储在原始内容之上。在上述例子中,模拟只是在现有场景布局的基础上进行分层。USD 采用了进阶的分层系统,让艺术家编辑、替换或调整场景中任何物体的可见性,此外还提供了调整灯光的个别参数,甚至可修改整个着色网络。
USD 格式可扩展以支持工作流程中所需要的任何数据类型。在 V-Ray 中,我们只能够存储与 V-Ray 特定功能有关的选项,比如穹顶灯的 ” Adaptive Sampling “开关。对于材质、纹理、渲染设置…等也是如此。所有艺术家已经熟悉的 V-Ray 功能都可在最后的 USD 阶段进行编码。
USD 工作流程的应用性
USD 超越了在应用程序之间共享场景数据的范围,由于其分层功能—因此能建立场景变化、排列组合和潜在协作的强大概念。有了 USD 分层,每一层都会带有一些 “编辑 “或覆盖,这些操作会影响到原来的内容,同时只带有增量变化的权重。
以下举一个简单的例子:
角色资产创建出来并储存到 char_geo.usd。
角色的棒球帽存储在 char_baseballCap.usd 中。
我们加载 char_geo.usd 并将其与 char_baseballCap.usd 分层。
Char_assembly.usd “指向 “char_geo.usd和char_baseballCap.usd,而不储存两个文件的实际信息。
我们把结果储存在 char_assembly.usd 中。
把所有的东西都放在硬盘上的档案中,我们可用 USD 直接渲染之。同时,不同的工作室团队可分别对角色或帽子档进行编辑,储存为新的版本并以非破坏性方式加载。
同样地,我们可让角色有另一个装配版本,戴上软呢帽,或有不同的灯光,或不同的材质…等等。我们还可将装配组合编码为 USD 所称的 “变体”(https://graphics.pixar.com/usd/docs/Authoring-Variants.html),这样就能在USD档载入后在不同档案间轻松切换。
V-Ray 和 USD
渲染器支持 USD 格式的方法一般有两种–使用 USD 程序(USD procedural)和通过 Hydra 的代理(Hydra delegate)。以下详述这两种方法:
USD 的程序表示渲染器自行设计以处理 USD 编码的数据,并且能够加载 USD 程序,用 USD 程序来渲染最终帧。
另一方面,Hydra 是渲染框架,Hydra 将数据从 DCC 的场景图表传递给渲染器。Hydra 做为了 USD 的交互式渲染模式。支持 Hydra 并不表示就能支持 USD,反之亦然,因为每种方法都需要自行开发。
在最新的更新版中,V-Ray 增加了这两种方法,Hydra 和 USD 是在最有意义的地方执行的。SideFX 在其 Solaris 环境中已拥抱 Hydra 文件格式,这就是为什么 V-Ray for Houdini 实现对 Hydra 的支持是最合理的。V-Ray for Maya 增加了 USD 程序,可用于加载和渲染 USD 数据,以及将数据导出为 USD。尽管 Maya 也支持Hydra,但导入对 Hydra 的支援,时机尚未成熟。
V-Ray在 Maya 中使用的 USD 流程是直接对新的 Maya USD 有所支持。其实,只需要在 Maya 2022 中利用 Maya USD 来加载 USD 档案并使用 V-Ray 5 update 1 来渲染 USD。
将 V-Ray 材质汇出到 USD 的工作方式与通过 Maya 的 File > Export 菜单的方式相同,您首先需要选择“USD Export” ,然后从材质的选单中选择 “V-Ray Material Exporter “。
V-Ray 5 for Maya,update 1 允许将 V-Ray 材质(材质和纹理)汇出到 USD 和 带有 Displacement 的位图连接到 Shading Group 的 displacement input。
未来的 V-Ray 更新版将把导出功能扩展到更多的数据类型,例如 V-Ray Lights、V-Ray Fur、V-Ray Subdivision 和其他置换方法。
在 Maya 中加载和渲染 USD 资料时,V-Ray 目前支持:
静态、变换和变形网格,支持动态模糊。
在 USD 文件中编码的 V-Ray 着色器和材质、置换和网格细分(例如,从 Houdini 传入的档案)。
usdPreviewSurface 材质(来自其他渲染器)。
用 V-Ray 在内存中渲染 USD edits,而无须将其储存到硬盘中。
使用 V-Ray 5 独立版对.usd 档进行脱机渲染,并使用从 V-Ray 汇出的.VRScene 档案。
以后,V-Ray for Maya 将在 USD 内增加更多的数据类型的渲染支持,如头发和粒子,我们将在使用 IPR 时检测 USD edits。
有关支持 USD 功能的完整列表,请参见 V-Ray for Maya USD 联机帮助页面(https://docs.chaosgroup.com/display/VMAYA/USD)。
V-Ray和Hydra文件格式
Hydra 中的 usdView
与 V-Ray for Houdini 一起提供的 Hydra 代理既可作为 Houdini 的 Solaris 视端口的交互式渲染代理,也可作为独立的工具,通过 Houdini 的 husk 执行档进行最终批量渲染。
随着 V-Ray 5 for Houdini,update 1,V-Ray 代理(V-Ray delegate)进入了官方的 Beta 测试阶段– V-Ray 的大部分功能已经作为补充 V-Ray 选项原生地整合到 Solaris 中,如灯光、渲染设置、渲染几何体设置。材质内容(material context)中可用的标准 V-Ray 着色节点也已经在 “材质库”LOP 中阶段性地显露出来。最近加入到支持的功能列表中的是通过 “Render Var” LOP的 AOVs。已经导入了渲染几何体、粒子、毛发和体积的功能,包括通过 “Scene Import(场景导入)”LOP 获得的基础对象和从硬盘上的 USD 文件参照的基础对象。
某些客制化的 V-Ray 程序(V-Ray procedurals),如 Environment Fog 和 V-Ray Proxy,也很快会推出。这里有一份最新的当前限制清单: Solaris 的功能与已知问题(https://docs.chaosgroup.com/pages/viewpage.action?pageId=70847926)。
很快,我们计划通过为 V-Ray for Houdini 提供预编译的 USD 函式库来开启 Hydra 代理,使其作为独立工具用于最终渲染,该函式库拥有 USD View 和 USD Record 应用程序,分别用于预览和批次渲染。
总结
这对制作项目来说真是令人振奋,USD 文件格式支持 Maya、Houdini 和 V-Ray 。随着这些重要功能的到位,如同鸣枪起跑一样,大多数 VFX 工作室终于能够真正探索生产工作流程,不仅仅是在理论上。这仅是刚开始,因为 Chaos 的 Maya 和 Houdini 开发团队正在努力让大家能够更快地将类似的支持添加到其他使用 V-Ray 的 3D 软件平台。
免费试用 V-Ray 5 for Maya 30 天(https://www.chaosgroup.com/cn/vray/maya/free-trial)
免费试用 V-Ray 5 for Houdini 30 天(https://www.chaosgroup.com/cn/vray/houdini/free-trial)