Alembic 导出器可以高效地将几何和元数据(材料、CGA 报表、对象属性等)导出到 Alembic .abc 文件中。 Alembic 是一个开放式高性能交换框架,专门用于 VFX 内容生产管道。 有关详细信息,请参阅 https://github.com/alembic/alembic。
使用情况
CityEngine Alembic 导出器的设计考虑到以下目标:
- 关注与已创建工具(例如 Side Effects Houdini/Mantra、Autodesk Maya、The Foundry Katana、Pixar Renderman、Solidangle Arnold、ChaosGroup VRay 等)的兼容性。
- 导出具有复杂规则的大型模型,同时保留形状粒度(不合并几何)。 由此即可在下游工具中对单个对象(例如建筑物)进行编辑(例如移动、缩放),而无需重新导出整个场景。
- 实例的保存(即 CGA 操作未涉及的已插入资产)将作为单独的节点导出。 由此即可在下游工具中对这些资产进行有限编辑(转换/缩放)。
- 直接导出每个网格上的所有材料属性和 CGA 报表值。 由此即可在下游工具中使用 CGA 报表来自定义材料。
导出选项
Alembic 导出器将与其他格式共享大多数导出选项,有关详细信息,请参阅常规导出选项。 唯一的例外是文件名。 由于 Alembic 能够高效地处理较大文件(多 GB),因此导出器在每次运行时将始终写入一个文件。
CityEngine 创建的 Alembic 节点层次结构
从 Alembic 实体映射到 CityEngine 实体(请参阅上图,从在左上方到右下方):
- "c_0_0, ..." 变换节点是从导出场景派生的稀疏网格的像元。 像元大小可以在导出向导中进行调整。
- 将根据 CityEngine 场景对象(“初始形状”)创建 "Shape 1, Shape 2, ..." 变换节点。 变换将存储由全局/局部偏移选项定义的平移。
- "CityEngine" 属性节点唯一,并且将接收当前用户名和 CityEngine 版本。
- "ceObjectAttributes" 和 "ceRuleAttributes" 属性节点将附加到形状节点,并接收相应形状的对象属性值和规则属性值。
- 将创建 "Leaf Shape 1, Leaf Shape 2, ..." 变换节点以保存 CGA 叶子形状的几何输出。 对于未缓存的网格(即完全由 CGA 创建的几何),将使用 CGA 叶子形状名称创建一个此类节点。 对于实例化资产,将为每个网格创建一个变换节点。
- "Points 1, ..." 节点将从形状(即由 scatter() 或 comp(v) 生成)接收所有单个折点几何。 将为每个唯一的材料/报表组合创建一个点节点。 注意:仅报告将作为用户属性进行附加。
- 将为每组具有相同实例变换(如果未缓存几何,则为无)以及相同的材料和 CGA 报表值的面创建 "Mesh 1, Mesh 2, ..." 节点。 唯一材料/报表组合可用于自定义具有报表值的材料。
- "P"(点)、"N"(法线)和 "uv0"(第一个纹理坐标集)将存储实际面几何。
- ".userProperties" 属性节点用于存储每个网格或点节点的 CGA 材料和报表。
- ".arbGeomParams" 属性节点用于存储附加纹理坐标集(Alembic 仅支持网格自身上的一个集)。
- "Preview Material" 节点的类型为 AbcMaterial,可将当前材料属性存储在(实验性) Alembic Preview Material v2.1 方案中。