Alembic

D’après la page d’accueil d’Alembic (en) :

Alembic est un système d’échange infographique libre. Alembic distille des scènes animées complexes en un ensemble non procédural, indépendant de l’application, de résultats géométriques précalculés. Cette « distillation » de scènes dans une géométrie précalculée est exactement analogue à la distillation de l’éclairage et du rendu de scènes en données d’image rendue.

Alembic est axé sur l’enregistrement efficace des résultats calculés des constructions géométriques procédurales complexes.Il n’est pas spécifiquement concerné par l’enregistrement du graphique complexe de dépendance des outils procéduraux utilisés pour créer les résultats calculés. par exemple, Alembic va enregistrer efficacement les positions de sommets animés et des transformations animées qui résultent d’une animation arbitrairement complexe et d’un processus de simulation qui pourrait impliquer des formes correctives enveloppantes, des simulations préservant le volume, des simulations de chair et de tissu, et ainsi de suite. Alembic ne va tener d’entegistrer une représentation du réseau de calculs (basiquement des rigs) qui sont requis pour produire les positions de sommets animés et des transformations animées finales.

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, “baked” to an Alembic file, and loaded into the shot file for shading and lighting with only moderate CPU usage.

La prise en charge du format de fichier Alembic a été introduite dans Blender 2.78.

Du fait de la nature Open Source du standard Alembic, ainsi que la bibliothèque C++ implémentant ce standard, Blender peut être utilisé dans un pipeline hybride. Par exemple, d’autres logiciels, tels que Houdini ou Maya, peuvent exporter des fichiers vers Alembic, qui peuvent alors être chargés, ombrés et rendus dans Blender, C’est aussi possible d’animer des personnages (ou autres modèles) dans Blender, d’exporter vers Alembic. et de charger ses fichiers dans d’autres logiciels pour un traitement ultérieur.

Export dans des fichiers Alembic

Cette section décrit l’effet des différentes options d’export.

Manual Transform (transformation manuelle)

../../_images/files_import-export_alembic_export-panel-scene-options.png

Options d’Export Alembic.

Scale

Cette option définit l’échelle globale du fichier Alembic. Gardez-la à sa valeur par défaut de 1.0 pour utiliser les unités de Blender.

Scene Options (optons de scène)

Start Frame et End Frame

Définit l’intervalle de trames à exporter vers Alembic. Par défaut c’est l’intervalle de trames de la scène courante.

Sub-frame Sampling

Ces options contrôlent l’échantillonnage sub-frame d’animations.

Transform Samples

Transform Samples sets the number of times per frame at which animated transformations are sampled and written to Alembic.

Geometry Samples

Geometry Samples sets the same, but then for animated geometry.

Shutter Open/Close

Shutter Open/Close l’intervalle [open, close] sur lequel ces échantillons sont pris. L’intervalle valide est -1 à 1, où -1 indique la trame précédente, 0 indique la trame courante, et 1 la trame suivante.

Par exemple, si l’information pour le flou de mouvement de maillage détaillé est souhaitée, certaines subframes autour de la trame courante peuvent être fournies à Alembic en utilisant un nombre d’échantillons de 5, Shutter Open à -0.25 et Shutter Close à 0.25. Ceci imite un obturateur à « 180 degrés », ouvrant à 90 degrés avant la trame et fermant de 90 degrés après la trame.

Selected Objects Only

Quand l’option est activée, elle exporte uniquement les objets sélectionnés. Quand elle est désactivée, tous les objets sont exportés.

Renderable Objects Only

C’est utile, par exemple, pour éviter d’exporter les formes d’os personnalisées.

Visible Objects Only

Limits the export to scene collections that are currently visible.

Flatten Hierarchy

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.

Options d’objet

../../_images/files_import-export_alembic_export-panel-object-options.png

Options d’objet.

UVs

Quand l’option est activée, les UV maps sont exportées. Bien que le standard Alembic ne prenne en charge qu’un UV map isolé, Blender exporte tous les UV maps dans un format lisible par d’autres logiciels.

Pack UV Islands

Produit une structure UV optimisée avec des îles non recouvrantes qui essaie de remplir efficacement l’espace de texture. Voir l”opérateur pack islands qui fonctionne sur le même principe pour plus d’information.

Normals

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.

Note

Currently this only supports static vertex colors, and not dynamically animated vertex colors.

Face Sets

Exporte les noms de matériau par face. Les données de matériau n’est pas exportée mais uniquement les noms de matériau.

Use Subdivision Schema

Écrit des maillages polygonaux utilisant le schéma « SubD » d’Alembic, plutôt que le schéma « PolyMesh ». Celui-ci s’adresse au programme ouvrant le fichier pour appliquer sa forme de subdivision non destructrice.

Apply Subdivision Surface

Applies any Subdivision Surface modifiers before writing to Alembic.

Triangulate

Triangulates the mesh before writing to Alembic. For more detail on the specific option see the Triangulate modifier.

Particle Systems (systèmes de particules)

../../_images/files_import-export_alembic_export-panel-particle-systems.png

Options de Particle Systems.

Alembic ne prend aucunement en charge les systèmes de particules, de même qu’il ne prend pas en charge les armatures. Hair est exporté comme des courbes animées sans largeur. Les particules sont exportées comme des points animés.

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 or kVaryingScope) 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.