通用场景描述

通用场景描述(USD)文件可以包含复杂的分层、重写和对其他文件的引用。Blender的USD导出器采取更简单的方法。导出时,场景中所有受支持的物体将导出,也可选择受其选择状态的限制。Blender不支持(尚未)导出USD层、变量、骨架动画等。

以下物体可以导出到 USD:

  • 网格(不同类型,见下文)。

  • 相机(目前仅支持透视相机,不支持正交相机)。

  • 灯(除面光外的所有类型)。

  • 毛发(导出为曲线,并仅限于父股)。

导出动画时,最终解算的网格将写入 USD。这意味着可以导出以下参数:

  • 静态网格。

  • 形变网格;此处网格的拓扑结构不会更改,但顶点的位置会随时间而变化。比如动画角色或弹跳(但不开裂)物体。

  • 任意动画网格; 在这里,拓扑确实会发生变化。比如,流体模拟的结果,液体飞溅会从主体上脱落。

  • Metaballs are exported as animated meshes.

../../_images/files_import-export_usd_example.png

来自 的镜头导出到 USD 并在 USDView中打开。

导出选项

导出到 USD 时,可以使用以下选项:

仅导出选中的物体

勾选后,仅导出选定的物体。对于副本物体,当其主体被选中时(比如在场景中实例化的集合)视为选中。

Visible Only

Only exports objects that are not hidden. Invisible parents of exported objects are exported as empty transforms.

动画

勾选后,将导出整个场景帧范围。取消勾选中,仅导出当前场景帧。

毛发

勾选后,父级发股将导出为曲线系统。不会导出发股颜色。

UV 映射

勾选后,包含被导出网格的 UV 坐标。USD中的 UV 贴图名称与 Blender 中相同。在USD中,默认名称为 st ,而在 Blender 中,默认名称为 UVMap。要导出为标准 UV 贴图名称 st,先将Blender中的 UV 贴图重命名为 st

法向

勾选,包含被导出网格的法线。这包括自定义循环法线。

材质

勾选后,导出网格的视口材质。当网格被指定了多个材质时,将为每个材质创建几何子集。

第一个材质(如果有)也始终应用于网格本身(无论几何子集是否存在),因为 Hydra 视口不支持子集上的材料。更多详细信息见 USD issue #542

设置用于

确定是使用集合、修改器的 视图渲染 可见性,还是可同时为 视口渲染 设置的任何其他属性。

试验特性

实例化

由于这是一个实验性选项。如果未勾选,副本物体将导出为真实物体,因此具有 100 个粒子的粒子系统(显示 100 个网格)将在导出文件中存在 100 个单独的网格。选中后,副本物体将作为对原始物体的引用导出。如果原始物体不是导出的一部分,则第一个副本将导出为真实物体并用作引用。

局限

单面/双面网格

USD 似乎既不支持双面不同材质或不同面组,因此 Blender 使用第一个材质中的标记将整个网格标记为单/双面。如果没有材质,则默认为双面。

网格法向

默认情况下,以USD表示的网格细分方案为"Catmull-Clark",但 Blender 使用 'None',表示导出多边形网格。这对于USD理解自定义法线是必需的;否则,网格将始终呈现为平滑。

顶点速度

目前只有流体模拟(一般不是微点)具有显式顶点速度。但是,这是导出速度的最重要情况,因为烘焙网格会一直更改拓扑,因此很难在后处理步骤中计算导入时的速度。

坐标系方位

Blender使用 Z 轴作为向上轴。由于USD支持 Y 向上和 Z向上,由 Blender 写出的 USD 文件始终使用 Z向上。

材质

导出材质的非常简单版本,仅使用 视口显示 颜色、金属度和粗糙度。

当有多个材质时,网格面将存储为几何子集,并且每个材质都分配给相应的子集。如果只有一个材质,则跳过此步骤。请注意,几何子集不是时间采样的,因此当动画网格更改拓扑时可能会中断。

毛发

仅导出父级发股,并且仅导出具有恒定颜色的。没有 UV 坐标,也没有关于法线的信息。

相机

仅导出透视模式相机。

灯光

USD不直接支持聚光灯,因此这些灯不会导出。

粒子

粒子仅在它们处于生存状态时写入,这意味着它们始终可见。目前没有代码处理将它们标记为在其生命周期之外不可见。

通过使用粒子的持久 ID 对物体名称添加后缀,使每个粒子变换具有唯一名称,从而导出粒子系统实例的物体。

实例化/引用

这仍然是一个实验功能,可以在导出到 USD 时启用。启用后,实例化物体网格将写入 USD 作为对原始网格的引用。网格的第一个副本是为实写而写入的,以下副本引用第一个副本。哪个网格被视为"第一个"或多或少是任意选择的。