USD是什么?如何发展起来的?
USD(Universal Scene Description)是一种开放的、可扩展的文件格式和数据交换标准,用于描述和交换三维计算机图形场景和资产的数据。它最初由皮克斯动画工作室开发,并于2012年公开发布。USD旨在解决复杂计算机图形制作流程中的数据管理和交换问题。
USD的发展历程可以追溯到皮克斯动画工作室在制作电影和动画过程中遇到的挑战。传统的计算机图形制作流程中,各个环节使用不同的软件和文件格式,导致数据的转换和共享变得复杂和低效。为了解决这个问题,皮克斯动画工作室开始开发USD,以实现更高效、更灵活的数据交换和共享。
随着时间的推移,USD得到了广泛的应用和采用,并在行业内获得了较大的影响力。USD的发展历程包括以下重要里程碑:
- 初始开发:USD最早由皮克斯动画工作室于2009年开始开发,旨在提供一种统一的文件格式和工作流程,用于管理复杂的计算机图形场景和资产。
- 开源发布:皮克斯动画工作室于2012年将USD开源,并发布了其核心库——UsdCore,使得更多的人可以参与其开发和使用。
- 扩展和生态系统发展:随着时间的推移,更多的功能和扩展被添加到USD中,使其成为一个功能强大且灵活的工具。此外,USD还促进了一个活跃的生态系统的发展,许多公司和组织开始采用USD,并提供各种工具和插件来支持其使用。
带来的价值和优势?
-
数据交换和共享:USD提供了一种通用的、可扩展的文件格式和数据交换标准,可以在不同的软件和工具之间实现高效的数据交换和共享。这有助于简化复杂的制作流程,提高生产效率。
-
高性能和可扩展性:USD通过采用一种基于层次的数据结构和增量加载机制,实现了高性能和可扩展性。它可以处理大规模场景和复杂资产,并在实时渲染和交互式应用中表现出色。
-
多版本和协同工作:USD支持多版本管理和协同工作,可以轻松地对场景和资产进行版本控制、合并和同步。这对于多人协作和团队工作非常有价值。
-
工作流程集成:USD可以与各种计算机图形软件和工具集成,包括建模软件、动画软件、渲染器等。它为艺术家和技术人员提供了一种统一的工作流程,使他们可以在不同的环节之间无缝切换和协同工作。
总之,USD作为一种开放的、可扩展的文件格式和数据交换标准,为计算机图形制作流程带来了许多价值,包括数据交换和共享、高性能和可扩展性、多版本和协同工作,以及工作流程集成等。这使得USD在电影制作、动画制作、游戏开发和虚拟现实等领域得到广泛应用。
USD是如何工作的?
(该部门内容转自XSuperZone https://zhuanlan.zhihu.com/p/626909376)
利用 USD,我们能够实现对 3D 项目的高效组织,而这一点正是通过"合成"(Composition)来完成的。“合成”是 USD 中核心的概念,它关注内容之间的联系而非内容本身。通过这种方式,USD 形成了对不同资产的桥接,将复杂的项目简化为一个一个节点与它们之间的联系,与软件工程中“低耦合”的理念有异曲同工之妙。
我们可以通过“合成操作”(Composition Arc)来将多个层次结构中的资产组合在一起,形成一个完整的 3D 场景或资产。在 USD 中,主要的合成方式有子层(subLayer)、继承(Inherit)、变体集(Variant Set)和引用(Reference)等。我们接下来以最基础的子层操作为例,展示 USD 是如何工作的。
-
subLayer
“层”(Layer)是 USD 中的基本概念,每个层都是一个独立的 USD 文件,下游人员可以在层上继续堆栈(Stack),这就是子层操作。例如,一位设计师根据自己部门的需求对某个 3D 模型进行了改动,而之后的设计师可以在这些操作的基础上继续进行他们的工作。
值得注意的是,上述所有的操作都不是针对原始数据的直接修改,而是存储在各层中。这就是传说中的“非破坏性编辑”,使得流水线上的各个环节能最大程度地彼此独立,避免相互干扰。
-
Opinion
在 USD 体系里,上述这种存储在层内的编辑被称为“观点”(Opinion),这是非常形象的,下游的设计师可以根据实际情况选择性地接受上游的“观点”,避免了以往线性工作流中上游对下游的决定性影响。最终的场景里,任何对象都是不同观点共同施加影响后的结果。
例如上面 USD 官方示例文件的厨房场景,“观点A”提供了原始的场景布局数据,“观点B”在“观点A”的基础上添加了装饰资产,“观点C”又在“观点B”的基础上添加、变换,最后,“观点D”在“观点C”的基础上对椅子模型进行变换。
可以看出,上述的观点是有层次结构的,更强的观点可以覆盖(override)更弱的观点。但注意,强层只是覆盖而不是改写,你可以关闭任何一个层来获得未被覆盖的数据。
这一点也正是 USD 工作流的独特优势,生产环节中每个部门、每个设计师都可以专注于自身层面的工作而不受他人影响,最终由 USD 负责合成所有人的工作成果,成像出最终场景。这或许印证了上一篇文章我们所阐述的,为什么 USD 并不只是一种文件格式,它能够使得传统工作方式发生变革。