Alembic 和 fbx存储结构和存储动画对比
Alembic (.abc) 文件中可以存储的内容
一个 .abc 文件的核心目的是保存三维场景中 时间无关(static)和 时间相关(animated)的数据,并以高效、轻量的方式表达。因此,它支持以下常见的 3D 数据类型:
1. 几何数据
多边形网格 (Polygon Mesh)
顶点位置、法线、UV 坐标、顶点颜色、面数据等。
曲线 (Curves/Splines)
用于存储类似于毛发、绳索、或路径的几何。
点云 (Point Clouds)
适用于粒子系统等使用点形式表达的数据。
子弹 (Sub-Division Surfaces)
存储细分网格数据,用于更高精度的几何表示。
2. 动画数据
顶点动画 (Vertex-level Animation)
每一帧的顶点位置更新,可用来描述复杂的动态几何(例如变形动画或破碎模拟)。
变换动画 (Transformation Animation)
对象的位移、旋转、缩放动画。
3. 摄像机与灯光
摄像机 (Cameras)
摄像机的位置、旋转、视锥体数据(例如视角、焦距、裁剪平面等)。
灯光 (Lights)
灯光位置、方向、类型以及相关属性(例如强度、颜色、阴影等)。
4. 层级与拓扑结构
层级结构 (Hierarchical Data)
.abc 文件支持场景的父子关系(例如:骨骼层级、节点结构)。
拓扑一致性 (Topology Consistency)
确保在动画过程中网格的拓扑不变,或明确标注拓扑的变化(例如,动态增加粒子或面)。
5. 材质和自定义属性
材质关联 (Material Assignments)
虽然 Alembic 本身不直接存储复杂的材质信息,但可以保存材质的引用信息或特定属性,用于在 DCC(数字内容创建)工具中重新赋值材质。
自定义属性 (Arbitrary Attributes)
用户可以定义自定义的顶点属性、点属性或面属性(例如热值、权重图、标记标签等)。
6. 场景快照
Alembic 旨在更像是一个场景快照(Snapshot)系统,用于缓存并传输大规模场景的几何和动画数据。它会优化存储,使其占用的磁盘空间更小,同时提高读取速度。