Alembic

以下摘自 Alembic 主页:

Alembic 是一个开放的计算机图形交换构架。Alembic 把复杂的、动画的场景提取为非程序化的、与处理软件无关的一套烘焙好的几何体。这种把场景'提取'为烘焙好的几何体的过程完全类似于把灯光和渲染场景提取成渲染出的图像数据。

Alembic专注于把复杂的程序化的几何体构建的计算结果进行高效的存储。非常明确的一点是,它 存储用来创建计算结果的复杂的程序化工具的依存关系。比如说,Alembic会高效地储存任意的复杂动画和模拟过程(包括包裹变形、形状校正、恒定体积模拟、布料和肌肉模拟,等等)所产生的动画的顶点位置和动画的变形。

TL;DR: Alembic can be used to write an animated mesh to disk, and read it back quickly & efficiently. This means that a mesh can be animated with a very CPU-intensive rig, 'baked' to an Alembic file, and loaded into the shot file for shading and lighting with only moderate CPU usage.

对 Alembic 文件格式的支持始于 Blender 2.78.

由于 Alembic 标准的开放性以及C++库文件的标准化, Blender可以用于混合的流程. 比如说,Houdini或者Maya这样的软件可以把文件输出为 Alembic格式, 然后在Blender中载入、贴图、渲染. 也可以在Blender中对角色(或者其它模型)赋予动画, 然后输出为 Alembic文件, 继而在其它软件中加载后进一步处理.

导出为 Alembic文件

此章节说明不同的输出选项的效果。

手动设置变换

../_images/pipeline_alembic_export-panel-scene-options.png

Alembic导出选项。

比例
设置Alembic文件的全局缩放值。使用缺省值1.0则采用Blender的单位。

场景选项

起始和结束帧
设置输出至 Alembic的帧范围。缺省使用当前场景的帧范围。
次帧采样:变形和几何体采样,快门开、闭
这些选项控制动画的次帧采样。 Transform Samples设置对每一帧进行动画变形的采样并写入Alembic的次数。Geometry Samples的设置与此相同,只是针对的是动画的几何体。 Shutter Open & Close(快门开、闭)规定了进行采样的 [开、闭] 间隔。有效范围为-1到1,其中-1指前一帧,1指后一帧。比如说,当需要详细的mesh运动模糊的信息时,以采样次数5、快门开设置为-0.25、快门闭设置为0.25对当前帧进行次帧采样并写入Alembic。这就模拟了一个180度的快门,在当前帧前开到90度,而在当前帧后关闭90度。
仅选中物体
选中此项时,只输出被选中的物体。否则输出所有物体。
仅可渲染物体
此选项很有用,比如用来避免输出自定义的骨骼形状。
仅可见层
输出的物体仅限于当前可见的场景层内。
摊平层级
不选此项时,将输出物体间的父/子关系。如果父物体本身不输出而自物体要被输出,则父物体以空物体代替。如果选中此项,则不输出父/子关系,所有的变形都按照世界坐标输出。

物体选项

../_images/pipeline_alembic_export-panel-object-options.png

Object options.

UV
选中此项后,将输出UV。虽然Alembic标准只支持单个UV,Blender以可以被其它软件读取的方式输出所有的UV。
拼排UV孤岛
Generates an optimized UV layout with non-overlapping islands that tries to efficiently fill the texture space. See the pack islands operator that works with the same principle for more information.
法向
When enabled, an object's normals are exported.
顶点颜色
选中此项时,将输出顶点颜色。此时只支持静态的顶点颜色,而不是动态的带动画的顶点颜色。
面集合
Exports the material names per face. The material data is not exported but only material names.
使用细分模式
Writes polygonal meshes using the "SubD" Alembic schema, rather than the "PolyMesh" schema. This tells the program opening the file to apply its form of a non-destructive subdivision.
应用表面细分
Applies any Subdivision surface modifiers before writing to Alembic.
三角化
Triangulates the mesh before writing to Alembic. For more detail on the specific option see the Triangulate Modifier.

粒子系统

../_images/pipeline_alembic_export-panel-particle-systems.png

Particle Systems options.

Alembic不支持粒子系统,正如它不支持骨骼。毛发输出为带动画的零宽度曲线。粒子输出为带动画的点。