Alembic¶
Informações obtidas a partir da página inicial sobre o Alembic:
Alembic (Alambique) é uma estrutura de abstração programática (framework) para intercâmbio de trabalhos de computação gráfica, com código fonte aberto. O formato Alembic distila cenas animadas e complexas em uma série de resultados geométricos procedurais gerados e gravados que podem ser usados independente da aplicação envolvida. Esta «destilação» de cenas em geometrias geradas e gravadas é exatamente análoga a destilação que é feita nas iluminações e cenas renderizadas para que sejam transformadas em dados de imagem renderizada.
O padrão Alembic tem como objetivo armazenar de maneira eficiente os resultados computados de construções geométricas procedurais complexas. Ele é especificamente bastante insensível em relação ao armazenamento dos gráficos de dependência das ferramentas procedurais usadas para a criação dos resultados computados. Por exemplo, o formato Alembic irá armazenar de maneira bastante eficiente as posições dos vértices e suas transformações animadas que são resultados gerados por uma animação arbitrariamente complexa e processos de simulação os quais podem envolver o envelopamento, formatos corretivos, simulações com preservação de volumes, simulações de tecidos e elementos orgânicos, e por aí vai. O formato Alembic não irá tentar armazenar uma representação de uma rede de computações (basicamente, arranjos) os quais são requeridos para produção das posições finais dos vértices e suas transformações animadas.
TL;DR: Alembic can be used to write an animated mesh to a drive, and read it back quickly and efficiently. This means that a mesh can be animated with a very CPU-intensive rig and then “baked” to an Alembic file. Finally it can be load into the shot file for shading and lighting with only moderate CPU usage.
Support for the Alembic file format was introduced in Blender 2.78.
Devido a natureza de código fonte aberto do padrão Alembic, bem como a implementação de bibliotecas C++ que rege esses padrões, o Blender pode ser usado nas integrações de fluxo de trabalhos híbridas. Por exemplo, outros softwares, como Houdini ou Maya, podem exportar arquivos para o formato Alembic, o qual pode ser então carregado, sombreado, e renderizado no Blender. Também é possível animar personagens (ou outros modelos) no Blender, exportar para o formato Alembic, e carregar esses arquivos em outros softwares para processamento posterior.
Exportando para arquivos Alembic¶
Esta seção descreve o efeito das diferentes opções de exportação.
Transformações manuais¶
- Scale
Isto define a escala global dos arquivos Alembic. Mantenha-o no valor padrão de 1.0 para utilizar como unidades Blender.
Opções de cena¶
- Frame Start, End
Define o intervalo de quadros a ser exportado para o formato Alembic. Em geral, o padrão apresentado inicialmente é o mesmo do intervalo de quadros da cena.
- Sub-frame Sampling
These options control the sub-frame sampling of animations.
- Samples Transform
Transform Samples sets the number of times per frame at which animated transformations are sampled and written to Alembic.
- Geometria
Geometry Samples sets the same, but then for animated geometry.
- Shutter Open, Close
Shutter Open/Close define the interval [open, close] over which those samples are taken. The valid range is -1 to 1, where -1 indicates the previous frame, 0 indicates the current frame, and 1 indicates the next frame.
For example, if information for detailed mesh motion blur is desired, some subframes around the current frame can be written to Alembic by using a sample count of 5, Shutter Open at -0.25 and Shutter Close at 0.25. This mimics a «180 degree» shutter, opening 90 degrees before the frame and closing 90 degrees after the frame.
- Achatar a hierarquia
When disabled, parent/child relations between objects are exported too. Any parent object that is not exported itself, but with children that are exported, is replaced by an empty. When enabled, parent/child relations are not exported, and transformations are all written in world coordinates.
- Use Instancing
Exports data of duplicated or instanced objects as Alembic instances; speeds up the export and can be disabled for compatibility with other software.
- Propriedades personalizadas
When enabled (which it is by default), custom properties are exported to Alembic as well. The following custom property types are supported:
Numbers (
int
,float
) and strings. These are exported as arrays of a single element, so47
will be exported as[47]
to Alembic, and"Agent"
to["Agent"]
. This matches the behavior of many other DCCs.Lists of numbers and strings. These are exported as-is, so
[327, 47]
is exported as[327, 47]
.Matrices and nested arrays of numbers. These are flattened into one long list, so a 3×2 matrix of numbers will become a list of 6 numbers. Similarly, nested lists
[[1, 2, 3], [4, 5], [6]]
will be exported as[1, 2, 3, 4, 5, 6]
.Numbers can be animated as well.
- Only
- Selected Objects
Quando habilitado, exporta somente os objetos selecionados. Quando desabilitado, todos os objetos serão exportados.
- Renderable Objects
This is useful to, for example, avoid exporting custom bone shapes.
- Visible Objects
Limits the export to scene collections that are currently visible.
Opções de objeto(s)¶
- UVs
Quando habilitado, os mapas UV são exportados. Ainda que os padrões dos arquivos Alembic forneçam suporte somente para um único mapa UV, o Blender exporta todos os mapas UV de uma maneira que eles sejam passíveis de ser lidos por outros softwares.
- Empacotar ilhas 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.
- Normais
When enabled, an object’s Normals are exported. See Custom Split Normals of Meshes below for more information.
- Vertex Colors
When enabled, exports vertex colors.
Nota
Currently this only supports static vertex colors, and not dynamically animated vertex colors.
- Conjuntos de faces
Exporta o nome dos materiais por face. A informação do material não é exportada mas apenas o nome dos materiais.
- Subdivisões
- Aplicar
Applies any Subdivision Surface modifiers before writing to Alembic.
- Use Schema
Writes polygonal meshes using the «SubD» Alembic schema, rather than the «PolyMesh» schema. This sets an import option for the program, with which the file is opened, to apply its form of a non-destructive subdivision.
- Triangular
Triangulates the mesh before writing to Alembic. For more detail on the specific option see the Triangulate modifier.
Sistemas de partículas¶
O formato Alembic não possui suporte para sistemas de partículas, da mesma maneira que não possui suporte a armações de ossos. Os cabelos são exportados como curvas animada sem nenhuma largura. As partículas são exportadas como pontos animados.
Importing Alembic Files¶
When importing an Alembic file, Mesh Sequence Cache modifiers are automatically added to time-varying meshes. For time-varying object transforms (so animation of rotation, location, or scale) the Transform Cache Constraint is used.
Custom Split Normals of Meshes¶
Blender supports the import and export of custom normals to Alembic files. As a basic rule of thumb, a completely smooth mesh will be exported without normals and thus produce the smallest Alembic file. This is reflected in the importer; an Alembic mesh without normals is loaded as a smooth mesh.
On export, for every mesh:
If it has Custom Loop Normals then the loop normals are exported.
If one or more polygons are marked flat then loop normals are also exported.
Otherwise, no normals are exported.
On import, when the Alembic mesh contains:
Loop normals (
kFacevaryingScope
) are used as custom loop normals, and enable Auto Smooth to have Blender actually use them.Vertex normals (
kVertexScope
orkVaryingScope
) are convert to loop normals, and handle as above.If there are no normals then the mesh is marked as smooth.
Unsupported normal types (
kConstantScope
,kUniformScope
,kUnknownScope
) are handled as no normals.
When an imported mesh does not contain normals, the final look can be controlled by enabling the Auto Smooth checkbox and altering the threshold angle.
Handling Time¶
Unlike Blender and many other applications and file formats, Alembic files don’t have any concept of frames. Alembic works purely with time, and values that are sampled over time. For example, there is no way to distinguish 30 FPS with 2 samples per frame, and 60 FPS with 1 sample per frame. This has caused many developers to just hard-coded 24 FPS when reading Alembic files.
Blender uses the current scene frame rate to convert a frame number (in Blender) to a time in seconds (in Alembic). As a result, you can import an Alembic file that was produced at 120 FPS into a Blender scene that is 30 FPS and still not see any time stretching.