通用场景描述
导入 & 导出文件
通用场景描述(USD)文件可以包含复杂的分层、重写和对其他文件的引用。Blender的USD导出器采取更简单的方法。导出时,场景中所有受支持的物体将导出,也可选择受其选择状态的限制。Blender不支持(尚未)导出USD层、变量、骨架动画等。
以下物体可以导出到 USD:
网格(不同类型,见下文)。
相机(目前仅支持透视相机,不支持正交相机)。
灯(除面光外的所有类型)。
毛发(导出为曲线,并仅限于父股)。
卷(静态卷和动画卷)。
导出动画时,最终解算的网格将写入 USD。这意味着可以导出以下参数:
静态网格。
形变网格;此处网格的拓扑结构不会更改,但顶点的位置会随时间而变化。比如动画角色或弹跳(但不开裂)物体。
任意动画网格; 在这里,拓扑确实会发生变化。比如,流体模拟的结果,液体飞溅会从主体上脱落。
元球导出为动画网格。
导出选项
导出到 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 作为对原始网格的引用。网格的第一个副本是为实写而写入的,以下副本引用第一个副本。哪个网格被视为
第一个
或多或少是任意选择的。
导入 Alembic文件
USD <https://graphics.pixar.com/usd/docs/index.html>`__文件通常将场景表示为一个基元的层次结构,或`prims。单个基元包含描述场景实体的数据,如几何体、灯光、摄像机和变换层次。Blender的USD导入器将USD基元转换为Blender对象的层次结构。和USD导出器一样,导入器还不能处理更高级的USD概念,如图层和引用。
以下USD数据类型可以导入为Blender对象:
相机
曲线
灯光
材质
网格
体积光渲染
有关如何处理各种数据类型的详细信息,请参阅 导入选项 的以下说明。
Xform和Scope Primitives
USD提供了包含变换数据的 Xform
prim类型,可用于表示变换层次结构和组织场景。此类 Xform
引物导入为Blender空对象。
USD还支持 "范围" 基元,它们是不包含变换数据的实体,但用于分组场景的其他元素。Blender与范围的概念不完全相同,因此此类原始文件导入为位于原点的Blender空白。这是一个不完美的表示,因为空对象具有变换,而 "作用域" 没有,但这种方法仍然有助于保留场景层次结构的结构。
动画
导入程序支持两种类型的动画:
动画转换 :如果USD基元具有随时间变化的转换数据,则将 转换缓存 约束添加到导入的Blender对象。
动画化几何 :通过向导入的数据添加 网格序列缓存 修改器来支持网格和曲线几何体动画化。几何属性( "USD Primvar <https://graphics.pixar.com/usd/docs/USD-Glossary.html#USDGlossary-Primvar>`__ )动画目前仅支持颜色属性和 UV。请注意,尚不支持 USD 文档序列(即每帧的唯一文档)。
材质
如果USD网格或几何子集具有绑定的材质,则进口商将为Blender对象分配与USD材质名称相同的材质。如果场景中已存在具有相同名称的Blender材质,则将分配现有材质。否则,将创建新的材料。
如果USD材质具有 "USD Preview Surface<https://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html>`__ 着色器源,则 视图显示 颜色、金属和粗糙度将设置为相应的USD Preview Surface输入值。
还有一个实验性 导入美元预览 选项,用于将美元预览表面着色器转换为Blender 原理化BSDF 着色器节点。此选项可能是有损的,因为它还不能转换所有着色器设置和类型,但它可以生成材质的近似可视化效果。
坐标系方位
如果导入的美元是Y向上,旋转将自动应用于根对象,以转换为Blender的Z向上方向。
导入选项
导出到 USD 时,可以使用以下选项:
- 相机
- 曲线
导入曲线原理,包括美元基准和NURBS曲线。(请注意,对Bézier基础的支持尚未充分执行。)
- 灯光
导入光源。目前不包括USD圆顶灯、圆柱灯或几何形状灯。
- 材质
导入材料。另请参阅实验 导入美元预览 选项。
- 网格
网格
- 体积(卷标)
导入USD OpenVDB字段资产。
- 路径
仅导入植根于给定基本体的USD场景的子集
- 比例|缩放
用来将导入的物体与世界的原点进行比例的值。
- UV 坐标
复制镜像UV坐标
- 将颜色属性复制到所选面。
将USD网格 "displayColor"值转换为Blender的颜色属性。
- 分区
基于 USD 细分方案属性创建表面细分修改器
- 代理
为 USD 实例创建唯一的Blender对象
- 基本体
不要导入隐形美元原始文件。仅适用于具有非动画 "可见性 <https://graphics.pixar.com/usd/docs/USD-Glossary.html#USDGlossary-Visibility>`__ 属性的原始文件。具有动画可见性的原始文件将始终导入。
- 引导
包含带有 purpose
guide
的原始值。- 代理
包含目的为 "代理" 的原始值。
- 渲染
包含目的为 "渲染" 的原始值。
- 设置帧范围为片段
更新场景的开始和结束帧以匹配 USD 阶段的开始帧和结束帧。
- 相对路径
选择相对于blend-file的文件路径.
- 创建一个集合:
将所有导入的对象添加到新集合中。
- 环境光照的强度。
用于输入光源强度的缩放。
- 材质方向
当导入的材质的名称与现有材质冲突时的行为。
- 使对称
将每种 USD材质导入为独特的Blender材质
- 参考
如果已存在具有相同名称的材质,则引用该材质而非导入
试验特性
- 导入
将美元预览表面着色器转换为原理化的BSDF着色器网络。
如果启用 导入美元预览 选项,材质混合方法将根据 "不透明度" 和 "不透明度阈值" 着色器输入自动设置,从而允许透明对象的可视化。