OpenUSD数据标准媒体应用指南(发布版).pdf

OpenUSD数据标准媒体应用指南(发布版).pdf

OpenUSD数据标准媒体应用指南(发布版).pdf

OpenUSD 数据标准媒体应用指南

(2024)

中国电影电视技术学会

2024 年 11月

目 录

前 言 .................................................................... 1

1 范围 .................................................................... 2

2 概述 .................................................................... 2

2.1 行业现状及面临的挑战 ................................................................................................................2

2.1.1 视频制作流程中创建 3D数字资产的难点 ................................................................2

2.1.2 在网络环境中应用 3D数字资产的瓶颈.....................................................................3

2.1.3 在开发 3D实时互动类型的项目中遇到的问题 .......................................................3

2.2 OpenUSD数据标准概述 .................................................................................................................4

2.2.1 OpenUSD 发展史 .................................................................................................................4

2.2.2 OpenUSD优势 ......................................................................................................................4

2.2.3 OpenUSD 与其他 3D数据标准的异同 ..........................................................................5

3 OpenUSD 标准技术框架 ..................................................... 5

3.1 OpenUSD的定义 ...............................................................................................................................5

3.2 OpenUSD的基本组成 ......................................................................................................................5

3.2.1 Stage(场景图) ..............................................................................................................6

3.2.2 Prim(基本单元) ............................................................................................................7

3.2.3 Layer(层) .......................................................................................................................8

3.3 OpenUSD的操作机制 ......................................................................................................................8

3.3.1 Composition(合成) .....................................................................................................8

3.3.2 Composition Arcs(合成弧) .....................................................................................9

3.3.3 VariantSet (变体集) ................................................................................................9

3.4 OpenUSD的属性 ............................................................................................................................ 10

3.4.1 Opinions(prim的属性及数值) ............................................................................ 10

3.4.2 Proxy(代理) ................................................................................................................ 10

3.4.3 Proxy与 VariantSet的比较 ..................................................................................... 11

4 利用 OpenUSD 提高制作效率和质量 .......................................... 11

4.1 利用 OpenUSD封装 3D数字资产 ............................................................................................. 11

4.1.1 资产封装方式 .................................................................................................................. 11

4.1.2 OpenUSD 资产封装在模型资产库的应用 ................................................................ 16

4.1.3 OpenUSD 资产封装在实时引擎流程中的应用 ....................................................... 16

4.2 利用 OpenUSD应对大数据量的 3D场景 ............................................................................... 17

4.2.1 利用 Reference引用机制 ........................................................................................... 17

4.2.2 利用 OpenUSD轻量化数据交互 .................................................................................... 19

4.2.3 利用 OpenUSD存储解算特效数据 ............................................................................. 20

4.2.4 利用 OpenUSD进行实时物理模拟 ............................................................................. 22

4.3 利用 OpenUSD提高动画迭代效率 ........................................................................................... 23

4.4 实时渲染 OpenUSD场景 ............................................................................................................. 26

4.5 利用 OpenUSD轻便化程序建模 ............................................................................................... 26

4.6 利用 OpenUSD的扩展功能实现自定义管理 ........................................................................ 27

5 利用 OpenUSD 提高协同能力 ............................................... 29

5.1 OpenUSD在团队协同工作中的应用 ....................................................................................... 29

5.1.1 OpenUSD非破坏性工作流 ............................................................................................ 29

5.1.2 利用 OpenUSD 的 Layer层机制................................................................................. 30

5.1.3 实现 OpenUSD场景的异地实时交互 ........................................................................ 33

5.2 OpenUSD在云服务中的应用 ..................................................................................................... 34

5.3 利用 OpenUSD加强数据安全 .................................................................................................... 35

5.4 OpenUSD在不同软件间的协同应用 ....................................................................................... 36

5.4.1 虚幻引擎与 DCC软件之间的协同 ............................................................................. 36

5.4.2 Omniverse与其他设计软件的协同 .......................................................................... 37

6 OpenUSD 与 AI 人工智能应用 ............................................... 38

6.1 利用 AI 能力自动生成 OpenUSD资产 .................................................................................... 38

6.1.1 生成式 AI .......................................................................................................................... 38

6.1.2 集成大语言模型的 LLM工作流 .................................................................................. 38

6.2 OpenUSD在 AI领域的应用展望 .............................................................................................. 39

6.2.1 在数据处理方面 ............................................................................................................. 39

6.2.2 在模型训练方面 ............................................................................................................. 40

参考文献 .................................................................. 41

1

前 言

目前,3D 是影视媒体等行业领域的主要视觉呈现形式,比如 3D 动画、3D 特效等。3D

视觉内容是基于计算机技术产生的三维数据,包括但不限于 3D 模型、纹理、动画、灯光、

摄像机等类型,它们通常被统称为 3D数字资产,比如数字人角色就是一个 3D数字资产,包

括了数字人的模型结构、皮肤、服饰等外观质感和纹理、毛发样式、表情动画、肢体动作动

画等数据信息;动画场景中的一棵树也是一个 3D 数字资产,同样包括了树的模型结构、树

叶树干的外观质感和纹理,还可以包括树叶随风摇摆的动画,甚至开花生长的动画数据。

随着行业对 3D 数字资产的需求不断增长,3D 数字资产的数据量正在变得越来越庞大、

复杂度也越来越高。但是在创建和应用3D数字资产时,由于行业中的3D应用软件多种多样,

因而产生了多种数据格式和标准,它们之间存在兼容性问题、相互协作问题、对大数据量的

承载问题和生产效率问题等,急需得到解决,因此采用先进的通用 3D 数据标准成为行业发

展的必要。在这个大背景下,OpenUSD数据标准应运而生,并得到行业的广泛认可。

OpenUSD 最早由皮克斯动画工作室(Pixar Animation Studios)开发,是一种开源的

高性能 3D 场景描述技术,可在工具、数据和工作流程之间提供强大的互操作性。OpenUSD

以其协同捕捉艺术表现力和简化影视内容制作的能力而著称,其强大的功能和灵活性使其成

为满足新行业和新应用需求的理想内容平台。2023 年 8 月 1 日,Pixar、Adobe、Apple、

Autodesk(欧特克)和 NVIDIA(英伟达)与 Linux基金会下属的联合开发基金会(JDF)共

同宣布成立 OpenUSD联盟(AOUSD),以促进皮克斯通用场景描述技术的标准化、开发、演进

和发展,推动视觉特效、动画等领域的三维互操作性。目前 OpenUSD 已经在国内外影视、动

漫、游戏制作中得到了广泛应用。

为推动国内 3D创意技术在影视媒体等领域的发展,帮助创作团队解决项目中的大量 3D

数据承载问题、制作流程中 3D 软件平台之间的数据协作问题,以及艺术家和团队之间的合

作协同问题,在中国电影电视技术学会领导、国家广播电视总局广播电视规划院组织下,由

来自行业内的技术专家共同组成项目小组,围绕 OpenUSD通用开源数据标准,制定本应用指

南,旨在面向国内行业介绍创建和应用 3D 数字资产的先进解决方案,有助于提高影视媒体

行业 3D内容的创作效率和作品质量,从而提高整个行业的科技水平。

指导单位:中国电影电视技术学会。

起草单位:中国电影电视技术学会、国家广播电视总局广播电视规划院、欧特克软件(中

国)有限公司、中央广播电视总台、腾讯科技(深圳)有限公司光子工作室群、杭州玄机科

技股份有限公司、NVIDIA技术服务(北京)有限公司、北京抖音信息服务有限公司。

起草人:韩强、宁金辉、孙琳、谢婧、郑恒利、于明、孙志伟、肖胜凯、罗海涛、刘靖、

姚飞俊、沈映、陈锦、高祎临、江涛、王子建、吴宝、于京平、顾其瑞、李墨若迷、曹继炜、

何展、宋毅明、徐国梁。

2

OpenUSD 数据标准应用指南

1 范围

本应用指南适用于在影视媒体等领域,利用 OpenUSD数据标准,更加高效、高质量的创

建和应用 3D数字资产。3D数字资产包括 3D模型、贴图、材质、动画等数据,其中 3D模型

和贴图的精细度将直接影响视觉质量,特别是在超高清项目中,需要提升模型和贴图的高精

度才能呈现高质量的画面效果。

2 概述

2.1 行业现状及面临的挑战

2.1.1 视频制作流程中创建 3D数字资产的难点

2.1.1.1 生产过程数字内容流转

主流数字内容创作软件(Digital content creation,DCC)各自具有不同的资产存储

机制,例如模型、动画、灯光、材质、特效和渲染参数等信息数据。由于不同 DCC软件基于

自身功能特点采用不同的实现方式和工作流程来管理这些资产数据,导致在生产过程中上下

游任务进行数字内容流转时处理过程繁杂且不易于管理。

2.1.1.2 数字内容兼容性

视效生产过程中会针对不同的视觉呈现内容来选择具有技术优势的 DCC软件进行制作。

对于呈现内容复杂的场景,往往需要多种 DCC软件协同制作。因此在对这些 DCC软件生产的

内容进行整合时经常会出现不兼容的情况。为达到兼容要求,通常需要对部分资产进行破坏

性的调整以满足兼容性。这会导致同一数字资产在不同的整合过程中会进行不同的调整。

2.1.1.3 团队生产过程协作

对于要求较高、体量较大的视效项目,通常会有多个团队参与,每个团队针对自身特点

所采用的制作方式和方法各有不同,难以统一。在整合多个团队生产的数字内容时需要更高

的沟通成本和管理成本。

2.1.1.4 超大型场景加载性能

涉及超大型复杂场景的制作时,由于场景包含大量复杂资产,导致修改单一资产成本较

高,加载时间过长或无法加载,严重影响生产效率。

2.1.1.5 数字内容扩展性

视效技术发展较快,新技术不断涌现,为了支持一些价值较高的新兴技术,通常需要对

资产文件的数据格式与内容进行扩展,并配合 DCC软件插件,以达到支持更多格式、降低管

理成本的目的。目前主流资产格式扩展性普遍较差,导致新技术融入比较困难。

3

2.1.2 在网络环境中应用 3D数字资产的瓶颈

在智能手机、VR/AR设备和新型智能终端等互联网使用场景下,基于网络数据的实时图

形引擎在处理 3D 图形数据方面面临诸多挑战,主要包括以下几个方面。

(1)数据存储

大数据量:3D 图形数据通常非常庞大,尤其是在处理高精度的场景和复杂模型时,对

存储空间需求高。

格式兼容性:不同设备可能支持不同的文件格式和存储规范,这对一致性存储提出了很

高的要求。

(2)数据传输

网络带宽限制:移动网络或宽带有限的环境中,传输大量 3D 数据可能造成延迟或加载

时间过长。

传输稳定性:网络连接的不稳定性可能导致数据传输中断或延迟,影响用户体验的连续

性。

(3)实时显示

计算资源限制:许多终端设备计算资源有限,尤其是移动设备,处理和渲染复杂的 3D

图形任务时可能性能不足。

渲染性能:实时渲染要求高性能的图形处理能力,保持高帧率和流畅的用户体验是一个

大挑战。

交互响应性:3D 图形的实时交互需要系统能够快速响应用户的输入操作,低延迟是关

键。

(4)兼容性和可扩展性

多设备支持:不同设备的硬件能力和软件环境各不相同,一致的呈现效果和体验是一个

巨大挑战。

多平台兼容:Web、移动 App、VR/AR 等平台有不同的技术栈和 API,确保多平台兼容性

是一大难题。

(5)用户交互

复杂交互设计:3D交互界面通常比 2D 界面复杂,需要设计直观且易用的用户界面。

设备多样性:不同设备的输入方式(如触摸屏、手柄、手势等)不同,设计统一且便捷

的交互方式具有挑战。

2.1.3 在开发 3D 实时互动类型的项目中遇到的问题

如图 2-1 所示,在实时互动类型的项目中,3D 数字资产的研发会涉及诸多不同的技术

领域与制作软件,目前行业内没有一个统一且通用的标准。3D 数字资产在不同的软件与实

时引擎中的非一致性会导致制作成本的增加,制作人员不得不耗费大量的精力进行资产的转

制工作。而且随着行业的发展,越来越多不同的 3D 数字资产格式被引入到了生产中,这使

得项目的制作流程越来越难以被扩展,严重阻碍了项目制作的工业化进程。

4

图 2-1 实时互动项目制作流程示例

2.2 OpenUSD数据标准概述

2.2.1 OpenUSD 发展史

为解决上述问题,皮克斯动画工作室(Pixar Animation Studios)在 2010年《勇敢传

说》制作期间开始开发 USD框架,之后,该工作室继续在制作中使用和改进 USD,2016年将

USD 转换为开源项目,推动在工作室内部和外部合作团队之间无缝共享数据。USD 最早采用

者之一是 Animal Logic,这家工作室也发布了开源插件,充分利用了 Maya中 USD的强大功

能。之后,USD解决方案逐渐得到行业的认可,各个软硬件厂商开始纷纷加入 USD的应用开

发。

Autodesk参与 Maya相关的 USD开源开发工作后,在上述两家插件的基础上,发布了 Maya

的 USD 插件,正式将 USD 解决方案引入 Maya。NVIDIA 推出以 USD 为数据基础的 Omniverse

开发平台。Adobe 公司著名的纹理绘制软件 Substance 3D Painter 支持 USD 工作流,在导

出纹理和材质数据时可以运用 USD 格式。Apple 在其产品中支持预览 USD 格式的 3D 模型。

2023 年,USD研发的主要参与者 Pixar、Adobe、Apple、Autodesk(欧特克)和 NVIDIA(英

伟达),与 Linux 基金会下属的联合开发基金会(JDF)联手创建了联盟----AOUSD,正式将

这一 3D数据标准命名为 OpenUSD。

2.2.2 OpenUSD 优势

优势一,快速加载和回放大型数据集。OpenUSD提供了轻量化组装场景的技术,大大降

低了高精度复杂 3D场景的数据量,可以实现大型复杂 3D场景的快速加载,有利于实现动画

的快速回放,这就意味着艺术家可以有更多的时间实现迭代,从而达到更加完美的艺术效果,

因此 OpenUSD可以大大提高艺术家的创作质量和效率。

优势二,非破坏性工作流程有利于团队协同。OpenUSD高效的内部机制可以让不同的艺

术家(比如:建模师、纹理艺术家、视觉特效师等)同时在同一个资产或者场景中并行工作,

并且能够管理和控制数字资产的更新和版本迭代,这对于以往的线形工作流来说,可以大大

提升复杂项目的制作效率,提高团队的协同能力。

5

优势三,通用标准有利于简化流程。OpenUSD正在被行业中越来越多的软、硬件采纳和

支持,艺术家可以选择最擅长的软件工具,创作出通用的 3D 数字资产,不必担心创作成果

无法应用到流程中的其他环节,或者其他软件应用平台。这将会减少创作过程中数字资产格

式的转换次数,可以大大简化工作流程,降低出错和丢失信息的可能性,提高创作质量。同

时提高了 3D数字资产的复用率,以前需要为同一个 3D模型创建不同的版本,以应对不同的

应用场景和软件平台,而 OpenUSD 数据标准的 3D 模型资产将会被越来越多的软、硬件平台

支持,真正实现 3D数字资产的通用性,进一步提高行业的生产效率。

2.2.3 OpenUSD 与其他 3D数据标准的异同

FBX、OBJ、Alembic 等传统格式都只是专注于某个或某几个技术领域,例如 FBX主要致

力于模型、材质和动画等相关的领域,而在群集、体素与高度图等方面则差强人意。当某一

种 3D 数据标准不能够涵盖所有需求时,就一定会导致其他 3D 数据标准的引入,继而引发

3D数据标准之间的冲突。与其他传统格式相比,OpenUSD的主要特点在于它总是致力于序列

化 3D 数字场景中的所有内容。用户可以在不同的软件、不同的技术领域中使用 OpenUSD,

无需担忧数据的缺损。而这也正是本指南介绍 OpenUSD 作为 3D数字资产解决方案的原因之

一。

除此之外,OpenUSD 还具有开源、开发接口丰富、可扩展性强等优点。这意味着即使是

在保密的、私有化的,或其他特殊类型的使用场景中,OpenUSD也可以通过扩展的方式满足

项目的定制化需求。

3 OpenUSD标准技术框架

3.1 OpenUSD的定义

3D 制作流水线中通常会生成、存储和传输大量 3D数据,它们是不同的流程节点(建模、

着色、动画、照明、特效、渲染等)产生的。因为它们分别来自于特定的、不同的应用程序,

因此其他应用程序都无法读取或编辑。针对上述问题,通用场景描述(OpenUSD)是首个开

源解决方案,可满足稳健地、可扩展地描述、交换和增强任意 3D场景数据的需求,这些 3D

数据可能由许多元素资产组成。OpenUSD 可被视为一种通用的资产交换格式,就像数据类型

和软件工具之间的通用语言。OpenUSD本质上是一种可扩展的场景描述和文件格式,是一个

广泛的框架,其中包括独特的概念和术语。OpenUSD的完整技术文档参见参考文献,本应用

指南介绍其中常用的基本组成、操作机制和属性。

3.2 OpenUSD的基本组成

OpenUSD的基本组成示例见图 3-1。

6

图 3-1 OpenUSD 的基本组成示例

3.2.1 Stage(场景图)

Stage描述了一个 OpenUSD 场景图,以列表的方式排列出场景中所有的元素,该 Stage

由一个根 OpenUSD 文件和所有引用/分层文件组成。UsdStage类展现一个 Stage时,同时在

内存中缓存了有关组合的命名空间和支持文件的足够信息,以便快速遍历 Stage并执行高效

的数据查询,并允许针对组成 Stage的任何层进行基本单元、属性和元数据编辑。

在打开的 3D 场景中,Stage 是已加载的场景图,如图 3-1 中,整个场景就是一个加载

好的 stage。

7

3.2.2 Prim(基本单元)

Prim是 OpenUSD 的基本单元,Prim里还可以包含(和排列)其他 Prim,比如图 3-1中

的每一幢建筑都是一个 Prim,足球场也是一个 Prim,它由草地、球门等 Prim组成,它们共

同组成了 Stage。

Prim 有多种类型,例如几何体、灯光、相机、着色器、XForm、Scope。其中,XForm

可包含空间变换数据,可用于平移、旋转和缩放其他 Prim,而 Scope 则不包含变换数据,

可应用于任何不需要变换的 Prim。图 3-2 中足球场的各个模型被组合在 XForm 类型的 Prim

里,可以进行位移、旋转等空间变换。而相关的材质则被打捆成组放在 Scope 类型的 Prim

里,是不可以进行位移、旋转等空间变换的。

图 3-2 Prim的分类

8

3.2.3 Layer(层)

Layer 包含零个或多个 Prim,在文件存储中,每个 Layer 通常都是磁盘上的一个单独

的 Usd/Usda/Usdc 文件,Layer组合在一起以表示一个完整的 Stage。

Layer在流程中的作用是:

一个 Stage场景是由许多的 Prim组成的,这些 Prim分别属于不同的 Layer,通过不同

的 Layer 来管理场景中的 Prim 以及 Prim 之间的关系,每个 Layer 都会产生一个对应的

OpenUSD文件,并存储在磁盘系统中,这个 OpenUSD文件记录了 Layer中的 Prim来源信息,

以及对 Prim的编辑操作信息。比如在图 3-1中,每个单独的建筑 Prim都来自于一个单独的

OpenUSD 资产文件,它们被引用加载进场景中,摆放在不同的空间位置上,这些建筑 Prims

被同一个 Layer来管理,这个层也随之产生一个独立的 OpenUSD文件,里面只记录了所有这

些建筑 Prim 的来源、在场景中的位置等相关编辑信息。之后在一个空的 Stage 中直接引用

加载 Layer 对应的 OpenUSD 文件,则这些建筑 Prim就会一起加载进来,并处于相应的位置

上。

可以把 Layer 理解为当前场景的制作流程管理工具,图 3-3 中 Maya 的 OpenUSD Layer

管理器,可以利用锁定 Layer 工具来管理数据的编辑权限,利用 Layer 的堆栈架构来管理

OpenUSD数据的覆盖强度排序,利用 Mute 静音 Layer工具来随时方便地卸载和加载 OpenUSD

数据等等。

图 3-3 Maya OpenUSD Layer管理器

3.3 OpenUSD的操作机制

3.3.1 Composition(合成)

Composition 是将多个 Layer 组装在一起最终形成一个 Stage 的过程。比如打开一个

9

Stage,就是在执行一个 Composition过程,包括如何组装这个 Stage,以及场景中各个 Layer

之间的关系。还比如当加载一个OpenUSD模型进入场景,也是在执行一个Composition过程,

包括如何加载这个模型,以及它和场景中的其他模型数据之间的关系。

3.3.2 Composition Arcs(合成弧)

Composition Arcs 可以理解为 Composition 过程中的具体规则方法,也就是用什么方

法加载和组成 Stage。Composition Arcs 一共有 6种规则:subLayers(子图层)、inherits

(继承)、variantSets(变体集)、references(引用)、payloads(有效载荷)、specializes

(特殊化)。比如 subLayers,是指用父子关系规则来新建 Layer 的操作方法。其他

Composition Arcs的应用,后续有详细介绍。

3.3.3 VariantSet (变体集)

VariantSet 是一种 Composition Arcs,它允许内容创建者打包一组不同的替代方案,

下游使用者可以在这些替代方案之间进行非破坏性切换或扩充。比如图 3-4中的建筑 F是一

个 VariantSet,包含了两个 variant:Building_F_variant_1 和 Building_F_variant_2,

也就是两个不同样式的建筑。在下游的流程中,使用者可以根据需要在这两个建筑样式中任

意切换。

10

图 3-4 VariantSet

3.4 OpenUSD的属性

3.4.1 Opinions(prim的属性及数值)

Opinions可以理解为 prim的属性和数值。

3.4.2 Proxy(代理)

在 3D 制作流程中,通常需要为高精度复杂场景创建一套低精度模型作为代理替身,被

称之为 Proxy 模型,在执行某些任务时,可以用轻量化的 Proxy 模型来代替原高精度模型,

以达到更快的操作响应速度,提升制作效率。在 OpenUSD 中,stage 和 prim 的用途属性中

11

都有 Proxy选项,意思是用于显示轻量化的代理模型,而非高精度的渲染模型。

3.4.3 Proxy与 VariantSet的比较

在 3D 制作流程中有这样一个需求:在软件的操作视口中只显示低精度的模型,用于进

行快速地检查和编辑操作,同时在渲染窗口中显示高精度模型,用于审看最终视觉效果。

VariantSet是无法满足这种需求的,如果把低精度和高精度模型设置为 VariantSet的两个

variant,由于任何时候 VariantSet只能呈现一个 variant,无法实现既要低精度又要高精

度模型的应用,此时就需要利用OpenUSD资产的Proxy属性值来应对这个需求。操作方法是,

把 Stage Display的 Purpose用途属性设置为 Proxy,把 Proxy模型的 Purpose用途属性设

置为 Proxy,把高精度原模型的 Purpose 用途属性设置为 Render,此时视口中只显示 Proxy

低模,而同时渲染场景时,只渲染出高精度模型。

4 利用 OpenUSD 提高制作效率和质量

4.1 利用 OpenUSD封装 3D数字资产

资产复用与资产交易是数字资产的核心价值,资产复用的高可用与资产交易的低成本是

数字资产价值的重要体现。对于资产复用,需要考虑精准定位与资产附加值;对于资产交易,

需要考虑资产安全以及资产交易后产生的沟通成本。

为了解决上述问题,需要创建一种基于 OpenUSD的数字资产封装方式,来满足上述要求。

OpenUSD对解决资产复用和资产交易有着天然的优势。首先基于 OpenUSD提供众多功能

强大的 API,可以对数字资产进行扩展。其次通过 OpenUSD提供的组件,可以使资产自动的

创造附加值。例如可以使用 OpenUSD的 Hydra 渲染框架,自动生成基于当前内容的 AI 训练

数据集。

4.1.1 资产封装方式

4.1.1.1 封装过程

数字资产封装的内容除了包含 OpenUSD文件外,还需要包含资产的描述信息,为了方便

的描述资产,需要一个用于编辑数字资产描述信息数字资产编辑器,在编辑好描述信息后,

需要编辑器生成一种可以详细描述资产信息的文件作为载体。为了方便统一管理,需要使用

规范化的数字资产定义语言作为文件的内容;生成数字资产描述文件后,需要根据数字资产

定义语言描述的内容,通过数字资产编译器来根据描述内容,将一切相关资源进行资产打包,

生成规范化的数字资产包,也可以将数字资产包进行解包,封装过程见图 4-1。

图 4-1 封装过程

12

数字资产编辑器通常为桌面程序或 Web 程序,需要根据数字资产定义语言的规范来实现,

并且通过 OpenUsd 提供的 Hydra 渲染,完成缩略图、预览视频、AI 训练数据等附加内容的

自动生成工作。同时也可以借助 OpenCV、ConfyUI自动生成

数字资产定义语言需要数字资产编译器支持,包含但不限于以下内容(带*表示必需包

含):

(1) 资产编号(*):需要创建一个表示资产的唯一编号,UUID 表示;

(2) OpenUSD 资产文件(*):数字资产内容,使用 usdz格式;

(3) 工程文件:创建数字资产的工程文件,zip格式;

(4) 缩略图(*):数字资产的预览图,包含资产索引信息,jpg 格式,可以通过 OpenUSD

Hydra渲染器自动生成;

(5) 预览视频:数字资产环绕低码视频,用于了解资产全貌,MP4 格式,可以通过 OpenUSD

Hydra自动生成;

(6) 资产类目(*):表示资产分类,根据具体需求而定;

(7) 资产描述(*):表示对资产的描述;

(8) DCC信息(*):表示工程文件使用的 DCC软件及版本;

(9) 渲染器(*):表示资产支持的渲染器及其版本;

(10) 色调(*):表示该资产的主要色调,保存为多组 HLS值,便于通过 Hue来检索资产

的色调,可由 OpenCV等工具生成;

(11) AI数据:由数字资产衍生的 AI训练数据,可以通过 OpenUSD Hydra自动生成语义

分割图像。

数字资产编辑器通常为一个可执行程序,需要根据数字资产描述文件与数字资产包的规

范来实现,通过使用数字资产编译器,可以将相同的数字资产描述文件编译为规范不同的数

字资产包。也可以将不同的数字资产描述文件编译为规范相同的数字资产包。

数字资产包作为数字资产最终的封装产物,该文件是二进制文件,所有描述内容的存储

以 length+conent 方式存储,格式见图 4-2。

图 4-2 数字资产包格式

规范版本:规范的描述信息,用于在解包时判断是否满足要求。

资产编号:表示该数字资产的唯一编号,用于管理。

加密方式:为了保证数字资产包内容的安全,因此需要对头文件进行非对称加密,该字

段表示使用了哪种算法进行了加密。通常公钥以公开的形式进行发布,版权方可以保留私钥

进行控制管理。

头文件:描述信息部分包含了所有存在的资产描述信息,文件索引部分包含了该资产包

所有相关文件在包中的文件位置以及大小信息。资产在编译时,将所有文件先进行编号处理,

后存入头文件的文件索引部分。解包时,通过文件编号查找文件索引中文件的位置及大小,

提取文件。

文件组:所有资产相关文件首尾衔接在一起组成的部分,只有通过头文件查询文件索引

后,才可以知道文件具体内容。

二进制为流式存储,因此约定的数据类型见表 4-1~表 4-7:

13

表 4-1 基本数据类型

数据类型 描述

Byte 表示 8bit 字节

String Byte 的字符串表示形式,统一 UTF8 字符集

UInt8 8 位无符号整数

UInt16 16 位无符号整数

UInt32 32 位无符号整数

UInt64 64 位无符号整数

表 4-2 变长数据类型

数据类型 描述

L{N}-{Type} 表示长度最大的 L 个 bit 位的变长类型,例如 L8-UInt8 长度位 0~255 长度之间的字

节数组

{Type}{N} 表示定长类型,例如 Byte[8]表示 8 个 Byte 类型

UInt8 8 位无符号整数

UInt16 16 位无符号整数

UInt32 32 位无符号整数

UInt64 64 位无符号整数

表 4-3 FileIndexInfo类型(描述数字资产包中的文件索引相关信息)

名称 类型 Bit 索引 描述

文件索引信息

UInt32 * 文件索引号,用于后续定位文件使用

UInt64 * 文件位置偏移量

UInt64 * 文件大小

表 4-4 FileInfo类型(描述数字资产包中的文件相关信息)

名称 类型 Bit 索引 描述

文件信息 L16-String * 原始文件路径

Byte[N] * 文件数据长度

表 4-5 AIData(表示可用于 AI训练的数据)

名称 类型 Bit 索引 描述

AI 数据

UInt8 *

表示 AI 数据的存储方式

0- image(遮罩图)

1- json

2- csv

3- excel

4- xml

5- 保留

UInt32 * 数据图像文件索引

UInt32 * 标记图像文件索引

14

表 4-6 UsdInfo类型(描述 OpenUsd资产信息)

名称 类型 Bit 索引 描述

OpenUsd 资产

Byte[16] * 数字资产唯一编号,UUID 表示

UInt32 * 除编号与本字段外的后续信息长度

UInt32

0 包含缩略图

1 包含预览视频

2 包含骨骼动画

3 包含跟踪文件

„31 —

UInt8 * 文件格式(根据 Meta 文件定义)

UInt32 * 支持渲染器列表(用 bit 表示,最多 31 个)

L16-String * 资产名称

L8-UInt32 * 缩略图文件索引(包含多个文件索引)

L8-UInt32 * 预览视频文件索引(包含多个文件索引)

L16-UInt32 * 资产文件索引(包含多个文件索引)

L16-UInt32 * 表示多个资产类目,该字段来自自定义类目表

L32-String * 资产描述信息

L8-(UInt8[3]) * 表示资产呈现色调,由多个 HSV 色彩空间值组成

UInt16 一 DCC 类型(根据 Meta 文件定义)

UInt32 一 工程文件索引(包含一个索引)

L8-AIData 一 表示基于该图像生成的 AI 数据集

表 4-7 封装格式表

名称 类型 Bit 索引 描述

标记头 Bytes[4] * 固定为“D”,“A”,“P”,“K”,标记使用

大版本号 UInt16 * 版本号的高位,例如 1.0 中的 1

小版本号 UInt16 * 版本号的低位,例如 1.0 中的 0

加密标记 UInt8 *

表示资产包所使用的非对称加密算法

0- 无加密

1- SM2(国密)

2- SM9(国密)

3- RSA

4- DSA

5- 保留

头文件长度 UInt32 * 头文件长度

资产所属组织编号 LString * 所属组织名称,例如 CMG

资产作者名称 LString * 所属作者名称

资产创作日期 LString * YYYY-MM-DD

文件索引信息(多

项)

L32-FileIndex

Info * 包含多个文件索引项,详见 FileInfo 结构

数字资产(多项) L32-UsdInfo * 包含多个数字资产项目,详见 UsdInfo 结构

文件组 L32-FileInfo * 文件体,包含资产相关所有物理文件,详见 FileInfo

15

4.1.1.2 资产入库/检索

数字资产包采用统一的规范,可以通过统一的方式将资产保存到媒资类系统中。具体步

骤见图 4-3。

注:

1.通过编译器将数字资产包进行解包

2.将解包好的内容存放至存储

3.将解包的资产描述信息存入数据库

4.将缩略图以及预览视频发布为公开服务

图 4-3 资产入库步骤

对于检索资产,可以通过资产信息进行全文检索。由于缩略图的头文件中包含了资产的

相关信息,因此也可以通过缩略图对资产进行检索。

4.1.1.3 资产存储优化

除了传统的存储方案,对于数字资产的封装特性,可以有针对性地进行优化。

(1)采用 NVMe存储:

由于数字资产通常体积较大,因此如果资产有进线(即与生产系统相关)要求,建议使

用 NVMe存储以提升存取速度。

(2)DCC存储优化:

通常情况下,数字资产包无法支持直接裸包导入 DCC软件中使用,即在不解包的情况下

直接使用。如果需要裸包直接进入 DCC 使用,有两种方式:一是通过开发 DCC 插件的方式,

通过编程方式提取资产文件导入 DCC;二是通过如 SDPK 等存储技术,开发针对数字资产包

的文件操作系统,通过 POSIX直接提供给 DCC使用。

4.1.1.4 数字资产封装的作用

通过对 OpenUSD的封装,可以扩展 OpenUSD作为资产属性的同时,又保障了资产复用与

资产交易。

针对资产复用方面,通过全文检索以及缩略图检索的方式,在实现了资产解锁的同时也

实现了高效的收藏(缩略图体积较小且直观,可直接定位资产位置,不需要把体积巨大的资

产文件保存到本地),实现了资产复用所需的精准定位。通过利用 OpenUSD 的 Hydra渲染等

功能,可以在封装的同时自动生成缩略图、预览视频以及 AI 数据等高附加值内容,丰富了

数字资产的内容。

针对资产交易方面,通过对数字资产的加密,充分保证了数字资产本身的安全性;由于

数字资产包规范的存在,数字资产可以在不同的异构系统以相同的方式进行入库打包,即只

要满足数字资产包规范的相关系统,不需要额外开发,直接可以入库,在促进了数字资产流

通的同时又减少沟通成本。

16

4.1.2 OpenUSD 资产封装在模型资产库的应用

对于海量的场景、道具,可使用 OpenUSD 格式构建资产库,资产库具备广泛的通用性,

资产不再局限于某一软件的专属格式,几乎全流程软件支持。通过构建高效的存储框架,

OpenUSD 可以实现中心化集中存储,最大化发挥资产的高流通性,既快速浏览、快速组合、

快速应用。

传统的 CG资产存储,一般存储 DCC源文件加 FBX。DCC源文件属于专属格式,无法通过

其他手段快速预览,Fbx在转储过程中会丢弃不相关的信息,也就无法做到精准预览。借助

OpenUSD的开放性,可以很方便地开发出预览工具,并且由于 OpenUSD对资产的数据进行了

全部存储,对于 OpenUSD无法理解的数据也存储进 Metadata,以保证资产数据的完整性。

图 4-4 OpenUSD模型资产库

4.1.3 OpenUSD 资产封装在实时引擎流程中的应用

OpenUSD 的独特性之一是,它可以描述 3D 数字场景中的所有数据类型,因此,它可以

用来描述实时引擎领域特有的一些资产类型,如植被、地表和贴花等。目前,OpenUSD委员

会尚未对实时引擎特有的数据类型制定出统一的 3D 数据标准。但虚幻等引擎开发厂商,与

游戏开发厂商均已在其内部流程中,为 OpenUSD扩展出了适用于实时引擎领域的资产描述方

式,如图 4-5所示。通常来说,实时引擎内特有的数据类型仅在该引擎内部生效,即使将其

转换为通用的 3D 数据标准,其他领域的软件也很难完整解析这部分数据。即便如此,3D数

据标准的建立依然有其流程上的必要性。例如当用户从实时引擎中导出植被数据到 Maya 等

软件中时,虽然 Maya 不能理解“植被”本身,也无法正确解析其中笔刷与剔除等内容,但

依然可以编辑其中包含的植被模型与材质等内容。在 OpenUSD的标准下,一切当前软件所不

能解析的内容都将以“元数据”的形式保存在资产内。而这些“元数据”会随着资产本身原

封不动的在各个软件之间流转,直到一个可以正确解析它的环节为止。因此,3D 数字资产

才得以在整个流程中保持完整,而无需切分成多种不同的数据类型,这也为实时引擎制作流

程的工业化打下了基础。

17

图 4-5 实时引擎流程中的 OpenUSD资产封装

4.2 利用 OpenUSD应对大数据量的 3D场景

4.2.1 利用 Reference引用机制

Reference 引用是一个 Composition Arcs,是一种可用于创建 OpenUSD 集的机制,

OpenUSD 集是由各个 OpenUSD 资源编译而成的单一复杂资源。通过 Reference,可以将同一

个图层文件多次加载到单个场景的不同位置,并重复使用场景描述。这样您就可以从外部位

置加载场景描述(即模型、资源),而无需将其复制到引用层的内容中。

比如在图 4-6中,右边是一个书模型的 OpenUSD资产数据结构,左边是一个场景图的数

据结构,可以看到左边的场景 Reference引用了三次右边的这同一本书模型,分别放在场景

中的不同位置上,而不是像以往那样导入书模型,然后在场景中复制。根据 PIXAR 关于

OpenUSD Reference 的说明,当打开场景文件时,原书的 OpenUSD 文件只打开了一次,并由

三个 Reference书模型共享,这体现了 OpenUSD 的轻量化功能,当场景具有大数据量的模型

时,无疑会提升加载速度。

图 4-6 Reference引用

18

在应用 Reference 当中,还有一个重要的功能是 Payload 有效载荷。有效载荷是一个

Composition Arcs,也是一种引用。通过 Payload加载的数据被记录,但不会在场景层次结

构中遍历。如果目标是手动构建一个“工作集”,即整个场景的子集,其中只需要加载场景

的一部分,那么在引用时请选择 Payload。

Payload可以理解为,它为 Reference提供了另一种模式:即引用 OpenUSD资产后可以

先暂时不加载进场景,等到需要用到时再加载。这个模式特别适合处理超大型场景,因为有

时某些重要的管道任务可以在不了解或不处理场景中许多或所有资产的所有几何图形和着

色的情况下完成。此时如果能在空载的情况下打开场景,就可以避免长时间等待不必要的加

载过程,就可以实现快速打开场景执行某些特定任务。

在 Maya中,可以通过 Outliner大纲来执行 Reference操作,见图 4-7和图 4-8。

图 4-7 Maya 中的 Reference操作 1

图 4-8 Maya 中的 Reference操作 2

19

4.2.2 利用 OpenUSD轻量化数据交互

图 4-9 是一个超大面积的复杂场景示例,采用 OpenUSD 流程后,可缩小大约 75%的资源

占用,降低文件出错率。

图 4-9 超大面积的复杂场景示例

效果预览见图 4-10。

20

图 4-10 效果预览

4.2.3 利用 OpenUSD 存储解算特效数据

对于复杂解算的特效效果,在工作流程中利用 OpenUSD 进行文件交接、流转,可缩短导

出时间并压缩导出文件的大小,有利于存储与传输。相比目前传统的数据格式,在通用性和

数据大小和时间上有较大的优势。

以图 4-11为例,在普通镜头帧数范围内(特殊超长镜头情况各异),相对于 DCC源文件交

接或 Abc 文件交接,使用 OpenUSD 进行文件导出,可以缩小大约 60%的导出大小,提升约 50%

的导出速度。

21

图 4-11 解算特效示例

以图 4-12为例的流体模拟,在普通镜头帧数范围内(特殊超长镜头情况各异))与 Abc文

件导出相比,导出 OpenUSD提升了 50%的时间,节约了约 20%的空间。

22

图 4-12 流体模拟示例

4.2.4 利用 OpenUSD 进行实时物理模拟

上述特效的解算并不是实时进行的,这种方式常用于视频制作流程。但是在某些项目中,

比如实时互动的项目,需要进行实时的模拟解算,此时就可以利用 OpenUSD的优势,在 NVIDIA

Omniverse实时平台中实现,见图 4-13和图 4-14。

图 4-13 利用 Omniverse的 NeuralVDB结合 OpenUSD 进行实时仿真

23

图 4-14 利用 Omniverse 的 Flow技术进行实时仿真

4.3 利用 OpenUSD提高动画迭代效率

在 3.2.3和 3.3.3中介绍了 Layer层和 VariantSet变体集的概念,下面以 Maya为例介

绍如何利用 OpenUSD的这两个机制提高动画迭代效率。

3D 影视制作中的动画数据是最常见也是最重要的资产,它体现了创意的灵魂,几乎无

处不在,同时它又是流程中最复杂、最庞大的数据集,因此也是制作过程中需要调整和修改

最多的环节。这就要求动画工具不仅能够承载大体量数据,还要对动画师的编辑命令做出快

速响应。为应对上述需求,行业中运用最多的方法是为原始动画数据做缓存和烘焙,生成轻

量化版本的动画数据,用于回放审看,通常称之为 Cache版本。Cache 版本的数据是无法编

辑和修改的,所以动画师的每次修改,都需要在原始动画和 Cache版本之间来回切换,在需

要大量迭代的动画工作流中,这种切换操作会很频繁,因此需要更加方便的解决方案。另外,

当动画师制作完成后,最终的动画数据也需要用 Cache 版本来传输,传递给其他后续流程。

总之,流程中会有两版动画数据,即原始动画数据和对应的 Cache版动画数据。

在 Maya OpenUSD流程中,针对需要调整的 3D 动画资产,可以利用 VariantSet来轻松

管理不同版本的动画数据,因为 VariantSet 最擅长的就是在不同版本之间进行无损切换。

Maya OpenUSD 会在引用原始动画数据时,自动创建其 VariantSet。这样,动画师只需利用

右键,就可一键启动 Cache,创建 Cache OpenUSD变体,并同时自动切换成 Cache版本进行

回放。接下来在迭代期间,动画师只需右键一键切换回原始动画的引用数据,然后利用动画

层来调整动画数据,调整的数据记录在当前的 OpenUSD 层当中,并不会损害原始动画数据。

这也是 OpenUSD非破坏性工作流的体现。修改完成后,动画师可以再次一键启动 Cache,更

新动画的 Cache OpenUSD版本,用于回放和传输。整个动画迭代流程都变得简单、高效和方

便。

Maya OpenUSD引入原始动画数据的方法见图 4-15和图 4-16。

24

图 4-15 Maya OpenUSD引入原始动画数据的方法

图 4-16 Maya OpenUSD引入原始动画数据的方法

Maya OpenUSD利用右键一键启动 Cache,见图 4-17。

25

图 4-17 Maya OpenUSD利用右键一键启动 Cache

Maya OpenUSD右键一键切换动画数据版本的方法见图 4-18。

图 4-18 Maya OpenUSD右键一键切换动画数据版本的方法

26

Layer 层机制的另一个好处是,有效管理数据的迭代更新。比如在动画层中记录了当前

场景中对原始动画数据的一些编辑调整,假如此时原始动画也需要重新修改,如果是以往的

线性工作流,那么当前场景中对原始动画的一些编辑调整就等于白做了,需要等待新的动画

数据导入进场景以后,再重新做一遍。但是在 OpenUSD流程中就可以避免重做,因为当前场

景的编辑数据是记录在独立的层中,是和原始动画数据分开的,因此不管原始动画数据如何

更新,它都不受影响。这就是非破坏性工作流的优势,它为流程提供了并行工作的可能性,

并有效管理数据的更新迭代,大大提高了效率。

4.4 实时渲染 OpenUSD场景

渲染是制作流程的最后成像环节,需要耗费大量的算力,OpenUSD的轻量化特性,可以

减少 3D场景的数据量,有效提高渲染速度。下面以 NVIDIA Omniverse 为例,介绍如何实时

渲染 OpenUSD 场景。

因为 Omniverse 采用实时光线追踪和路径追踪并且集成了工业渲染器 Iray,结合 MDL

材质使可视化效果达到真假难辨的地步。并且基于 NVIDIA RTX 渲染器支持多显卡加速,实

现单个视口算力堆积,与 OpenUSD 场景结合体现了高保真的渲染效果。央视纪录片《你好!

火星》中利用 RTX 渲染器进行实时光追渲染的效果见图 4-19。

图 4-19 RTX 渲染器 + OpenUSD场景

4.5 利用 OpenUSD轻便化程序建模

传统流程中进行程序化建模,首先在工具中导入大量的模型资产才能进行后续计算。基

于 OpenUSD的开放性,可以直接从中心服务器检索符合条件的模型资产,并快速连接到工具中进行

程序化预览。而 OpenUSD 的开放性,可以赋予 OpenUSD资产更多的标签信息,方便程序化工具

检索到更合适的资产。这一步将比较依赖成规模的 OpenUSD资产库,只有前期积累足够多的

OpenUSD资产,以及清晰的标签,后期程序化工具才能更加的得心应手。

原始流程见图 4-20,在程序化生成场景过程中,无论场景当前是否需要,都需要全量加

载所有资产,这就造成了空间浪费。

27

图 4-20 原始流程

OpenUSD流程逻辑见图4-21,仅需要在服务器中搜索OpenUSD索引文件,即可按需加载,

节约存储空间。

图 4-21 OpenUSD流程逻辑

4.6 利用 OpenUSD的扩展功能实现自定义管理

OpenUSD 具有开放和可扩展的特点,为项目流程的自定义提供了方便。利用 NVIDIA

Omniverse的 KIT 工具包,使开发人员可以创建新的 Omniverse应用程序和扩展,对 OpenUSD

场景进行自定义应用,见图 4-22。例如通过 Omniverse Kit 开发 App 用于绿幕虚拟拍摄,

如图 4-23和图 4-24所示。

28

图 4-22 通过 Omniverse Kit 开发基于 OpenUSD 的应用

图 4-23 通过 Omniverse Kit 开发基于绿幕虚拟拍摄的 App

29

图 4-24 基于 Omniverse应用开发打通绿幕虚拟拍摄的流程

5 利用 OpenUSD 提高协同能力

5.1 OpenUSD在团队协同工作中的应用

5.1.1 OpenUSD 非破坏性工作流

在图 5-1中,右边的书模型被 Reference引入场景,一共三次。之后,在场景中的书颜

色做了调整,覆盖了原来的颜色,但是这个调整不会影响到书在原始文件中的颜色设置,其

他场景对这本书的引用,依然显示原先的颜色设置。这就是非破坏性工作流的体现:下游的

调整不会破坏上游的原始数据,为流程提供了灵活的制作手段。

假如在这之后,需要调整书的造型,模型师可以只修改原书的 OpenUSD文件,那么镜头

动画师场景中所有三本书的造型就都自动更新了。这也是 Reference 与以往导入+复制操作

的不同之处:下游的引用数据始终与上游的原始数据保持关联,因此 Reference可以提升制

作流程的效率,提高团队的协同能力。

30

图 5-1 非破坏性工作流

5.1.2 利用 OpenUSD 的 Layer层机制

Layer 层的概念定义在 3.2.3 中已经阐述,下面以 Maya OpenUSD 为例,介绍如何利用

Layer层管理场景和流程,提高团队协同的水平。

Layer 层不仅可以是场景中模型的容器,也可以是流程中各个制作环节的数据的容器。

在图 3-3 中,自下而上分别包括 Layout 布局层、动画层、vfx 特效层、灯光层,这个顺序

也代表了制作这个镜头的流程顺序,所有这些层共同组成了一个镜头所包含的完整的场景图。

每个层都对应一个独立的 OpenUSD文件,也对应了一位艺术家的创作工作。但是和以往不同

的是,利用 OpenUSD层架构,这些艺术家可以同时并行开展创作,不用等待上游艺术家完成

创作。比如模型师还在精雕细刻造型的细节,灯光师就可以开始给场景初步打光,于此同时

动画师和特效师也可以同时开展工作。他们的工作成果可以随时更新成相应的 OpenUSD文件,

基于场景图中的层架构,更新的 OpenUSD数据会被自动分别引入进场景图中,不会彼此覆盖,

但相互之间又能始终保持正确的逻辑关系。因此并行工作流可大大缩减制作周期。

在图 5-2的复杂场景中,如果按照传统流程,当一个资产、项目发生改动,即使是微小的

改动,也必须将整个文件发送同步,这就造成了时间上的浪费。利用 OpenUSD,可以将基础场

景与后期调整分开,即基础场景仅仅保留原始场景。后期对场景的所有修改都存储进修改层,利

用 OpenUSD 层来对场景进行分区编辑,每次仅需要同步修改层,节省了空间与时间。对于后

期的二次修改,利用修改层,可以最大化地避免对原始场景的破坏,还能让场景拥有更多变

体。

31

图 5-2 场景汇总

小组分区块制作示例见图 5-3。

图 5-3 小组分区块制作示例

结构分层示例见图 5-4。

32

图 5-4 结构分层示例

效果预览见图 5-5。

图 5-5 效果预览

33

5.1.3 实现 OpenUSD 场景的异地实时交互

因项目需要,当制作团队分布在异地时,就需要结合 OpenUSD 与实时平台的技术,来

解决实时的异地协作。下面以 NVIDIA Omniverse为例,介绍异地实时交互的实现。

NVIDIA Omniverse 是一个完全基于 OpenUSD 基础架构开发的平台,通过 OpenUSD 与

NVIDIA Omniverse 的结合,团队可以实现实时协作。Omniverse平台允许不同地点的用户在

同一场景中进行交互和修改,确保所有团队成员都能即时看到最新的更改。这种实时反馈机

制对于快速迭代和决策至关重要。

在央视纪录片《你好!火星》中,利用了虚幻引擎和 Omniverse 基于 OpenUSD框架进行

跨软件多人多软件协同,见图 5-7。

图 5-7 利用 Omniverse + OpenUSD进行多人协同工作

OpenUSD有数据协同、多人协作的特点,NVIDIA Omniverse基于 OpenUSD的框架开发了

Nucleus组件,Nucleus 是 NVIDIA Omniverse 平台的核心组件,充当数据存储和协作服务的

中心,可以实现多人协同快速存储访问 OpenUSD 数据。其主要功能包括:

(1)用户权限管理:给与不同的技术人员不同访问权限;

(2)实时协作:支持多用户同时在同一场景中工作,提供实时更新和反馈;

(3)数据存储:集中管理所有 3D资产和场景数据,简化文件管理。

在动漫制作项目中,也可通过 Omnvierse Connect实现 OpenUSD异地快速同步。图 5-8是

异地实时交互流程图,图 5-9是异地实时交互操作界面示例图。 A地制作人员使用 Maya修改场

中的区块结构,到 B 地,B 地制作人员收到同步提醒,点击同步即可立即在渲染引擎或者 DCC

软件中同步 A地制作的修改结果。

34

图 5-8 异地实时交互流程

图 5-9 异地实时交互操作界面示例图

5.2 OpenUSD在云服务中的应用

软件服务化(Software as a Service),又称 SaaS,是一个近年来开始兴起的软件应

用模式。它是一种通过网络提供软件服务的模式。通过统一将应用软件部署在服务器上,用

35

户根据自己的实际需求,在线按需选用一种或多种软件。在这种模式下,用户不再像传统的

软件使用模式一样投入大量时间用于硬件和软件的部署于维护,而只需要访问指定的站点,

就可以通过网络享受到软件所提供的服务。

在软件服务化的实际落地应用过程中,开发人员所面临的除了软件上云以外,还有来自

中央数据存储的挑战。当用户与软件分别存在于多个不同的机器时,云端需要一个中央化的

数据库用于执行不同机器之间的 3D 数字资产版本的同步。而在版本同步的过程中,如果引

入多种不同类型的 3D数据标准,就会导致不同 3D数据标准之间的版本难以得到统一。例如

当模型更新了十个版本时,材质可能才刚刚更新到第五个版本。这将给制作人员带来额外的

版本匹配的负担,也会给版本的回溯带来困难。OpenUSD全场景描述的特性恰好可以解决这

个难题。通过使用统一的 3D 数据标准,保证中央数据存储中只存在统一的数据格式,就可

以以更低的成本解决版本同步的难题,也降低了系统的使用和维护成本。

与此同时,本应用指南中所提到的有关 OpenUSD的 Layer特性,也十分匹配软件服务化

与中央数据存储的需求。当附属软件与用户同时编辑同一场景时,常常会出现彼此覆盖对方

编辑结果的问题。通过将每个用户与软件的编辑结果存放在对应的 Layer中,就可以在非破

坏性的前提下,完成多人与多机的实时协作,而后只需要对 Layer的优先级进行调整,就可

以动态地得到最终的 3D数字资产合成结果。

图 5-10 软件化服务

5.3 利用 OpenUSD加强数据安全

基于 OpenUSD的开放性,可以很好地对 3D数字资产进行安全封装。如对最终的二进制封

装文件,可以通过定义文件结构进行资产保护。封装流程见图 5-11。

图 5-11 封装流程

36

数字资产包结构示例见图 5-12。

图 5-12 数字资产包结构示例

如需要将一些数字资产与第三方共享时,仅希望在特定平台中使用,就可以使用加密(国

密)的 OpenUSD资产,搭配特定的导入程序即可做到资产专用,最大化地保证资产安全。

5.4 OpenUSD在不同软件间的协同应用

OpenUSD作为一种通用 3D数据标准,支持多种软件及平台(如 Maya、Omniverse、Houdini、

Unity、Unreal、Blender等),使得不同工具之间的数据交换变得更加顺畅。这种兼容性对

于构建复杂的模型场景至关重要,因为它允许团队人员在不同软件环境中自由组合。

5.4.1 虚幻引擎与 DCC软件之间的协同

在虚幻引擎的创作流程中,存在着大量仅在编辑器阶段生效的资产与数据类型。这些数

据通常与用户界面和编辑模式相关,例如场景中的控制器、资产生成系统中的配置表等。在

处理这些数据类型时,用户可以采用和处理运行时数据相似的解决方案。但编辑器数据往往

自由度与定制程度都更高,不同的项目组之间所采用的 3D 数据标准常常大相径庭,这时就

可以发挥出 OpenUSD可扩展性强的特点,通过对 OpenUSD进行适量的改造与扩展,为项目组

量身定制出最佳的 3D数据标准。

使用 OpenUSD 管理编辑器数据的另外一个优势是可以建立一套联通虚幻引擎内工具链

和引擎外工具链的全流程 3D数字资产解决方案,见图 5-13。例如在实时引擎内重建现代都

市时,用户可以通过其他 DCC工具完成都市的布局,并将建筑外轮廓等数据以 OpenUSD的形

式发送到实时引擎中,交由引擎内的建模系统生产最终的结果。

又比如当用户需要新建一块岩石的数字资产时,仅需输入例如长宽高等参数,自动化流

水线就可以通过 Maya 为其创建出基础的岩石模型,而后交由 Houdini 进行风化处理,再通

过 Substance Automation Toolkit 为其赋予材质和贴图,并自动导入虚幻引擎中为用户展

示最终的渲染结果。在整个流程中,无需人力的介入,3D 数字资产的程序化生成可以解放

生产力,让人力资源得以流入更有创造性的任务之中。而 OpenUSD则在其中起到了不可替代

的润滑剂的作用。

37

图 5-13 虚幻引擎与 DCC软件之间的协同

5.4.2 Omniverse与其他设计软件的协同

通过 Omniverse的 Connector可以把第三方软件的 OpenUSD数据在不同软件之间进行共

享,并且连接到 Omniverse平台上,见图 5-14。

图 5-14 影视创作中地形创建(Photoshop+Maya+Omniverse)

38

6 OpenUSD与 AI 人工智能应用

6.1 利用 AI能力自动生成 OpenUSD资产

人工智能 AI 应用需求越来越多,可以利用如 Omniverse等工具自带的 AI能力来快速生

成 OpenUSD资产。

6.1.1 生成式 AI

利用 Omniverse 和 AI 方式生成 HDRI 全景图,放置到 OpenUSD 场景当中,可调用

Omniverse 提供的 AI API 接口,快速生成 360°的 HDRI 全景图,见图 6-1。可以根据影视

拍摄的剧本需要快速生成高质量的天空场景。

图 6-1 利用 AI 快速生成 HDRI全景图

6.1.2 集成大语言模型的 LLM工作流

通过 Omniverse + ChatUSD 大语言模型,快速生成 OpenUSD 3D场景。如图 6-2所示,

是一个小朋友通过自然语言不断迭代最终生成一个高质量的影视级别场景,快速给与虚拟拍

摄(生成模型——添加材质灯光——最终场景)。

39

图 6-2 大语言模型驱动工作流

6.2 OpenUSD在 AI领域的应用展望

近年来,随着人工智能领域技术的快速发展,尤其是面向图形图像的相关领域,对高质

量数据的需求也越来越旺盛。OpenUSD 作为一种通用的 3D 场景格式,在人工智能领域的应

用也变得越来越广泛。

6.2.1 在数据处理方面

在 AI项目中,获取和处理高质量的 3D数据是至关重要的。OpenUSD具备以下优势。

(1)通用性和兼容性:OpenUSD 是一个通用的场景描述格式,支持多个种类的几何图

形、光影效果等。这种通用性确保了不同来源的数据能够统一、方便地集成和处理。

40

(2)高效的数据管理:OpenUSD 支持分层和分级的场景描述,可以组织和管理复杂和

庞大的场景数据。这有助于数据的快速访问和修改,提升处理效率。

(3)跨平台兼容:由于 OpenUSD 是开源的,并且有广泛的社区支持,能兼容多种平台

和工具,在数据采集和预处理阶段尤为有用。

6.2.2 在模型训练方面

在深度学习,特别是计算机视觉领域,3D数据的训练已经成为趋势。OpenUSD在训练数

据集管理和生成方面具有显著优势。

(1)高质量的训练数据生成:生成高保真、可控的 3D训练数据集,用于训练深度学习

模型,尤其是在需要大量数据合成的场景,如自监督学习和强化学习。

(2)丰富的数据标签:OpenUSD可以详细描述 3D场景的各个部分,提供丰富的标签信

息。这对监督学习中的标注需求有利,特别是在复杂场景理解中。

(3)数据增强:使用 OpenUSD 格式的数据可以进行各种数据增强操作,如模拟不同光

照条件、视角等,进一步丰富训练数据。

(4)简化模型测试:利用 OpenUSD 格式,可以方便地构建各种测试场景,验证模型在

不同情境下的表现。

41

参 考 文 献

1. Pixar Animation Studios 关于 OpenUSD的文档

https://openusd.org/release/index.html

2. AOUSD联盟网站

https://aousd.org/

3. Maya

https://help.autodesk.com/view/MAYAUL/2024/ENU/?guid=GUID-9E9D45F2-4DA9-497

B-8D69-1573ED6B2BA8

4. Unreal实时引擎

https://www.unrealengine.com/zh-CN

5. Houdini

https://www.sidefx.com/

6. Substance

https://www.adobe.com/products/substance3d/features.html

7. LIVRPS

https://openusd.org/release/glossary.html#livrps-strength-ordering

8. FBX

https://help.autodesk.com/view/FBX/2020/ENU/

9. OBJ

https://en.wikipedia.org/wiki/Wavefront_.obj_file

10. Alembic

https://github.com/alembic/alembic

11. HDRI

https://www.adobe.com/creativecloud/photography/discover/hdr.html

https://en.wikipedia.org/wiki/High_dynamic_range

https://openusd.org/release/index.html https://aousd.org/ https://help.autodesk.com/view/MAYAUL/2024/ENU/?guid=GUID-9E9D45F2-4DA9-497B-8D69-1573ED6B2BA8 https://help.autodesk.com/view/MAYAUL/2024/ENU/?guid=GUID-9E9D45F2-4DA9-497B-8D69-1573ED6B2BA8 https://www.unrealengine.com/zh-CN https://www.sidefx.com/ https://www.adobe.com/products/substance3d/features.html https://openusd.org/release/glossary.html#livrps-strength-ordering https://help.autodesk.com/view/FBX/2020/ENU/ https://en.wikipedia.org/wiki/Wavefront_.obj_file https://github.com/alembic/alembic https://en.wikipedia.org/wiki/High_dynamic_range


Item Type: pdf