通用场景描述

导入 & 导出文件

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

以下物体可以导出到 USD:

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

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

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

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

  • 卷(静态卷和动画卷)。

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

  • 静态网格。

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

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

  • 元球导出为动画网格。

Note

To export the Blender scene as a USDZ archive, set the file extension of the output file to .usdz. The exported USDZ package will be a zip archive containing the USD and its texture file dependencies.

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

Shot from Spring exported to USD and opened in USDView.

导出选项

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

仅导出选中的物体

当选中时,只有被选中的对象才会被导出。实例对象,例如在场景中被实例化的集合,当它们的实例器被选中时,就被认为是 被选中 。

仅可见

仅导出不为 隐藏 的对象。导出对象的隐形父级导出为空变换。

动画

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

毛发

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

UV 贴图

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

法向

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

材质

导出对象的材料信息。默认情况下,导出器通过将 原理化BSDF 节点树转换为USD的预览表面格式来接近它。如果 美元预览表面 被禁用,材质将设置为网格的视口材质。

其他材料属性在选项的 材质 分组中设置。

当网格分配了多个材料时,将为每个材料创建一个几何子集。第一个材质(如果有)也始终应用于网格本身(无论是否存在几何子集),因为 Hydra 视口不支持子集上的材质。有关详细信息,请参阅 “美元问题 #542 <https://github.com/PixarAnimationStudios/USD/issues/542>`__。

设置用于

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

材质

材料 启用导出时附加选项。

Alembic或USD文件的路径。

导出材质时,通过将a 原理化BSDF 节点树转换为USD的预览表面格式,将其大致转换为。如果禁用,材质将设置为网格的视口材质。

Warning

并非所有节点都支持;目前仅支持漫反射、原理、图像纹理和UVMap节点。

使用操作器来导入ASCII或二进制PLY文件,你可以一次选择多个文件。对于导出,你可以选择在导出过程中启用或禁用修改器,你可以选择你想导出的数据(UV纹理,颜色属性,…)。

将着色器节点引用的纹理导出到与USD文件在同一目录中的 “纹理” 文件夹。

覆盖

允许在导出纹理时覆盖现有纹理文档。

文件参考

相对路径

使用相对路径引用USD格式外部文件(即纹理、体积),否则使用绝对路径

试验特性

实例化

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

限制:

单面/双面网格

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

网格法向

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

顶点速度

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

坐标系方位

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

材质

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

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

毛发

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

相机

仅导出透视模式相机。

灯光

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

粒子

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

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

实例化/引用

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

USDZ

Due to a current limitation in the USD library, UDIM textures cannot be include in the USDZ archive. This limitation will likely be addressed in a future version of USD. (See USD pull request #2133.)

导入 Alembic文件

USD files typically represent the scene as a hierarchy of primitives, or prims. Individual prims contain data to describe scene entities, such as geometry, lights, cameras and transform hierarchies. Blender’s USD importer converts USD prims to a hierarchy of Blender objects. Like the USD exporter, the importer does not yet handle more advanced USD concepts, such as layers and references.

以下USD数据类型可以导入为Blender对象:

  • 相机

  • 曲线

  • 灯光

  • 材质

  • 网格

  • Primitive Shapes

  • 体积光渲染

有关如何处理各种数据类型的详细信息,请参阅 导入选项 的以下说明。

Note

When importing a USDZ archive, it is important to carefully consider the Import Textures option to determine whether and how to copy texture files from the zip archive.

Xform和Scope Primitives

USD提供了包含变换数据的 Xform prim类型,可用于表示变换层次结构和组织场景。此类 Xform 引物导入为Blender空对象。

USD还支持 “范围” 基元,它们是不包含变换数据的实体,但用于分组场景的其他元素。Blender与范围的概念不完全相同,因此此类原始文件导入为位于原点的Blender空白。这是一个不完美的表示,因为空对象具有变换,而 “作用域” 没有,但这种方法仍然有助于保留场景层次结构的结构。

动画

导入程序支持两种类型的动画:

  • 动画转换 :如果USD基元具有随时间变化的转换数据,则将 转换缓存 约束添加到导入的Blender对象。

  • Animating geometry: Animating mesh and curve geometry is supported by adding a Mesh Sequence Cache modifier to the imported data. Geometry attribute (USD Primvar) animation is currently supported only for Color Attributes and UVs. Note that USD file sequences (i.e. a unique file per frame) are not yet supported.

材质

If a USD mesh or geometry subset has a bound material, the importer will assign to the Blender object a material with the same name as the USD material. If a Blender material with the same name already exists in the scene, the existing material may be used, depending on the Material Name Collision option. Otherwise, a new material will be created.

If the USD material has a USD Preview Surface shader source, the 视图显示 color, metallic, and roughness are set to the corresponding USD Preview Surface input values.

There is also an Import USD Preview option to convert USD Preview Surface shaders to Blender Principled BSDF shader nodes. This option can be lossy, as it does not yet handle converting all shader settings and types, but it can generate approximate visualizations of the materials.

坐标系方位

如果导入的美元是Y向上,旋转将自动应用于根对象,以转换为Blender的Z向上方向。

导入选项

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

相机

视图(View) ‣ 透视/正交(Perspective/Orthographic)

曲线

导入曲线原理,包括美元基准和NURBS曲线。(请注意,对Bézier基础的支持尚未充分执行。)

灯光

导入光源。目前不包括USD圆顶灯、圆柱灯或几何形状灯。

材质

Import materials.

网格

网格

体积(卷标)

导入USD OpenVDB字段资产。

基本体

Imports USD primitive shapes (cubes, spheres, cones, ect) as Blender meshes.

路径

仅导入植根于给定基本体的USD场景的子集

比例|缩放

用来将导入的物体与世界的原点进行比例的值。

UV 坐标

复制镜像UV坐标

将颜色属性复制到所选面。

将USD网格 “displayColor”值转换为Blender的颜色属性。

分区

基于 USD 细分方案属性创建表面细分修改器

代理

为 USD 实例创建唯一的Blender对象

基本体

Do not import invisible USD primitives. Only applies to primitives with a non-animated visibility attribute. Primitives with animated visibility will always be imported.

引导

Include primitives with purpose guide.

代理

包含目的为 “代理” 的原始值。

渲染

包含目的为 “渲染” 的原始值。

设置帧范围为片段

更新场景的开始和结束帧以匹配 USD 阶段的开始帧和结束帧。

相对路径

选择相对于blend-file的文件路径.

创建一个集合:

将所有导入的对象添加到新集合中。

环境光照的强度。

用于输入光源强度的缩放。

材质

Import All Materials

Also import materials that are not used by any geometry. Note, when this option is false, materials referenced by geometry will still be imported.

导入

将美元预览表面着色器转换为原理化的BSDF着色器网络。

笔画 ‣ 设为活动材质

如果启用 导入美元预览 选项,材质混合方法将根据 “不透明度” 和 “不透明度阈值” 着色器输入自动设置,从而允许透明对象的可视化。

材质方向

当导入的材质的名称与现有材质冲突时的行为。

  • 使对称:

    将每种 USD材质导入为独特的Blender材质

    参考:

    如果已存在具有相同名称的材质,则引用该材质而非导入

纹理

When importing a USDZ package, the following options specify whether and how texture asset dependencies of the USD should be copied from the zip archive so they can be loaded into Blender.

Import Textures

Behavior when importing textures from a USDZ archive.

  • 无:

    Don’t import textures. Note that, with this option, material textures may fail to be resolved in Blender.

    Packed:

    Import textures as packed data in the Blender file.

    复制:

    Copy files to the directory specified in the Textures Directory option.

Textures Directory

Path to the directory where imported textures will be copied, when the Import Textures mode is Copy.

Note that the default textures directory is the relative path //textures, which requires the Blender file to have been saved before importing, so the relative path can be resolved.

File Name Collision

Behavior when the name of an imported texture file conflicts with an existing file.

  • Use Existing:

    If a file with the same name already exists, use that instead of copying.

    覆盖:

    Overwrite existing files.