通用场景描述¶
通用场景描述(USD)文件可以包含复杂的分层、重写和对其他文件的引用。Blender的USD导出器采取更简单的方法。导出时,场景中所有受支持的物体将导出,也可选择受其选择状态的限制。Blender不支持(尚未)导出USD层、变量、骨架动画等。
以下物体可以导出到 USD:
网格(不同类型,见下文)。
相机(目前仅支持透视相机,不支持正交相机)。
灯(除面光外的所有类型)。
毛发(导出为曲线,并仅限于父股)。
导出动画时,最终解算的网格将写入 USD。这意味着可以导出以下参数:
静态网格。
形变网格;此处网格的拓扑结构不会更改,但顶点的位置会随时间而变化。比如动画角色或弹跳(但不开裂)物体。
任意动画网格; 在这里,拓扑确实会发生变化。比如,流体模拟的结果,液体飞溅会从主体上脱落。
Metaballs are exported as animated meshes.
导出选项¶
导出到 USD 时,可以使用以下选项:
- 仅导出选中的物体
勾选后,仅导出选定的物体。对于副本物体,当其主体被选中时(比如在场景中实例化的集合)视为选中。
- 动画
勾选后,将导出整个场景帧范围。取消勾选中,仅导出当前场景帧。
- 毛发
勾选后,父级发股将导出为曲线系统。不会导出发股颜色。
- 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 作为对原始网格的引用。网格的第一个副本是为实写而写入的,以下副本引用第一个副本。哪个网格被视为"第一个"或多或少是任意选择的。