机器人

如何使用 OpenUSD

通用场景描述(Universal Scene Description) 是开放、可扩展的框架和生态系统,具有用于在 3D 虚拟世界中合成、编辑、查询、渲染、协作和仿真的 API。

本文介绍了如何使用现有资产和工具立即开始使用 OpenUSD,以及可以采取哪些步骤以迭代方式提升 USD 工作流程的水平。

要以交互方式全面介绍 OpenUSD 的基本概念、词汇和最佳实践,请探索 NVIDIA Deep Learning Institute 提供的 免费 Learn OpenUSD 学习路径

数据交换 

OpenUSD 不会取代您现有的工具或数据格式。顾名思义,Universal Scene Description 提供了一种常用方法来表示网格和 PBR 材质等许多 3D 概念的数据。它不断发展,以支持其他概念,例如 physics 和 B-reps。

An image shows several dozen logos of digital content creation applications that connect to OpenUSD.
图 1、OpenUSD 日益壮大的 DCC 应用生态系统

要开始将 OpenUSD 与您的现有素材结合使用,请使用导出工具或转换器将您的内容导入 USD。这一方法可确保快速有效地集成到新的 USD 工作流程中。通过这种方式使用 USD,您可以开始增强不同生产阶段的协作、性能和互操作性。

有关入门指南的更多信息,请参阅 支持 USD 交换的应用程序和工具列表

当您扩展 USD 工作流并希望将 OpenUSD 与专有数据结合使用时,您可能需要开发自己的数据交换解决方案。

数据交换流程管理从一种数据格式到另一种数据格式的内容提取、转换和提取。有几种主要类型的数据交换解决方案用于将现有内容集成到 USD 工作流中:

  • 导入和导出工具:这些工具可在数字内容创建 (DCC) 应用中找到,使您能够直接向 USD 导入和导出 3D 素材。Rhino 和 Blender 等热门软件有助于导入 3D 素材,而 Houdini 等应用则将 3D 素材作为原生 USD 文件打开。这使得您可以在现有工具中轻松使用 USD。
  • 转换器: 这些是独立的程序或脚本,旨在将不同格式的 3D 文件转换为 USD 格式或从 USD 格式转换为 3D 文件。它们为批量处理和自动化提供了灵活性,可确保您的资产可以轻松转换,而无需人工干预。
  • USD 文件格式插件 :通过这种类型的 USD 插件,您可以保留原始源格式的数据,同时在打开舞台时动态读取数据并将其转换为 USD。这意味着,您可以使用原生格式处理资产,同时仍能从 USD 的强大功能中受益,同时保持数据完整性和工作流程效率。

概念数据映射以及提取、转换、加载(ETL)是开发数据交换解决方案的关键流程,有助于确保无缝传输和集成 3D 资产和数据。

概念数据映射涉及定义一个系统或格式的数据与另一个系统或格式中的数据对应的方式 。在使用不同的 DCC 应用或文件类型时,这一点尤为重要,因为每个应用或文件类型都可能有自己独特的数据结构和表示形式。

ETL 是一个更全面的过程,用于将数据从一个系统迁移到另一个系统并进行集成。它由以下主要步骤组成:

  1. 提取: 从源系统或文件格式中提取数据。数据可以是 3D 模型、纹理、动画或任何其他相关内容。
  2. 转换 :转换提取的数据以满足目标运行时需求。这可能包括转换单位、重新格式化数据结构,或过滤掉无关紧要或私有数据。
  3. 加载: 将转换后的数据加载到目标运行时。 这有时称为 ingestion ,可确保数据可随时用于基于 USD 的工作流和应用。

概念数据映射和 ETL 流程对于确保内容可以有效准确地传输到 USD 生态系统,并在整个交换过程中保持其质量和功能至关重要。 OpenUSD Exchange SDK 有助于加速数据交换解决方案的开发,并有助于创作高质量的 OpenUSD 数据。

在将数据导入 OpenUSD 后,下一步是了解如何聚合和构建数据,以更大限度地提高效率。

了解如何通过免费的 Learn OpenUSD 自定进度课程 开发数据交换工作流

资产结构原则和内容聚合

结构良好的资产可实现有效的内容聚合和资产可重用性,这正是 OpenUSD 真正擅长的地方。在复杂的项目中,正确的素材结构和内容聚合是高效组织和合并 3D 素材和场景的关键方法。

开发素材结构需要将 3D 内容分解为更小、可管理的组件,以便于引用和重复使用。这样,您就可以创建一个层次化且井然有序的结构,简化资产的管理和维护。这种方法允许您在需要时仅加载必要的组件,从而提高可复用性和性能。

借助精心设计的资产结构,您可以增强协作,因为不同的工作流可以在不同的层中独立创作数据,然后将数据组合成单个资产。这种非破坏性编辑方法可确保一个团队所做的更改不会覆盖另一个团队的工作。

构建完较小的组件后,请使用内容聚合功能将其合并为一个连贯一致的场景。合成操作符 (例如 references 和 payloads) 支持此过程。

An image shows a digital twin of a liquified natural gas carrier made possible with Omniverse and OpenUSD.
图 2 液化天然气运输船的数字孪生 (图片来源:HD Hyundai 和 Siemens)

这些技术有助于使 OpenUSD 成为管理大型 3D 项目的强大工具,促进高效协作、资产重复使用和工作流效率,使其成为任何现代 3D 生产工作流不可或缺的一部分。

通过免费的 Learn OpenUSD 自定进度课程,学习 资产结构化原则和内容聚合

合成操作符 

合成操作符是 OpenUSD 的基础运算符,可将场景描述的较小单元组合成较大的单元。这可在 OpenUSD 工作流中实现稳健的资产结构和内容聚合。

此功能是 OpenUSD 的超能力之一,使其有别于其他 3D 数据格式和框架。

An image shows an autonomous mobile robot in a warehouse, which was composed with OpenUSD.
图 3、合成操作符支持创建复杂的 3D 对象,例如自动移动机器人

合成操作符是以非破坏性方式组合 USD 数据单位的必要工具。OpenUSD 中提供的合成操作符包括子层、引用、有效载荷、变体集、继承、专门化以及最近添加的重新定位。

从以下合成操作符开始,了解如何在自己的工作流程中利用它们:

  • 子层 :支持多个协作者或进程在给定的 USD 环境中运行。子层中创作的数据以“include”方式添加到 USD 上下文中。
  • 引用:最适合内容聚合,可用于将一个 USD 上下文移植到另一个 USD 上下文的层次结构中。通过引用资产,您可以为每个组件维护单一的事实来源,从而确保一致性并减少冗余。这在重复使用相同资产的大型项目中特别有用。
  • 变体集 :用于存储组件的多个变体,在不复制数据的情况下增强适应性。此功能使您能够在单个高效结构中创建素材的不同版本,例如不同的材质或配置。用例包括指定模型的不同纹理、材质或配置,例如描述具有不同涂料颜色或不同轮缘风格的汽车。
A screenshot shows the UI for an OpenUSD scene, which typically includes composition arcs such as sublayers, payloads, and references.
图 4、OpenUSD 场景的合成

学习和实施合成操作符将为您的 USD 工作流提供即时价值。然而,由于其广泛的灵活性和多样化的应用,掌握可能需要数年时间。为了有效使用 OpenUSD,我们强烈建议您投入大量时间进行实验,并深入了解合成弧类型。

通过免费的 Learn OpenUSD 自定进度培训,学习 创建 composition arcs

开始使用 

OpenUSD 为高效的 3D 资产管理和内容聚合提供了一整套功能,使其成为大型项目不可或缺的框架。通过掌握数据交换、资产结构化和合成操作符,您可以显著改善 3D 工作流中的协作、性能和可复用性。

通过学习 Learn OpenUSD 学习路径上的课程,在基础知识的基础上进行构建。

开始在 Omniverse Kit SDK 上使用 OpenUSD 进行开发,并使用生成式 AI 模型通过 USD NIM 微服务 进行 OpenUSD 开发。

有关 OpenUSD 的更多资源,请访问 Alliance for OpenUSD ( AOUSD ) 论坛 并访问 AOUSD 网站。

 

标签