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 des 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 tenter d’enregistrer une représentation du réseau de calculs (basiquement des rigs) qui sont nécessaires pour produire les positions de sommets animées et les 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 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.

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. Il est aussi possible d’animer des personnages (ou autres modèles) dans Blender, d’exporter vers Alembic et de charger ces 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 d’Alambic générique et de scène.

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)

Frame Start, End

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 des sous-trames (sub-frame) d’animations.

Samples Transform

Transform Samples (Échantillonnage des transformations) définit le nombre de fois par trame auquel les transformations animées sont échantillonnées et écrites dans Alembic.

Geometry

L’Échantillonnage des Géométries agit de même, mais pour la géométrie animée.

Shutter Open, Close

Obturateur Ouvert/Fermé définit l’intervalle [ouvert, fermé] durant 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 sous-trames 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.

Flatten Hierarchy

Quand l’option est désactivée, les relations parent/enfant entre des objets sont aussi exportées. Tout objet parent qui n’est pas exporté lui-même, mais avec des enfants qui sont exportés, est remplacé par un vide (empty). Quand l’option est activée, les relations parent/enfant ne sont pas exportées, et les transformations sont toutes écrites en coordonnées du monde..

Use Instancing

Exporte les données des objets dupliqués ou instanciés objets en tant qu’instances Alembic ; accélère l’exportation et peut être désactivé pour compatibilité avec d’autres logiciels.

Custom Properties

Lorsqu’elles sont activées (ce qui est le cas par défaut), les propriétés personnalisées sont également exportées vers Alembic. Les types de propriétés personnalisées suivants sont pris en charge :

  • Les nombres (int, float) et les chaînes de caractères. Ils sont exportés sous forme de tableaux d’un seul élément, ainsi 47 sera exporté comme [47]` vers Alembic, et ['Agent'] vers ['Agent']. Cela correspond au comportement de nombreux autres DCCs.

  • Listes de nombres et de chaînes de caractères. Elles sont exportées telles quelles, donc [327, 47] est exporté sous la forme [327, 47].

  • Les matrices et les tableaux de nombres imbriqués. Ils sont nivelés en une longue liste, de sorte qu’une matrice de nombres 3×2 devient une liste de 6 nombres. De même, les listes imbriquées [[1, 2, 3], [4, 5], [6]] seront exportées sous la forme [1, 2, 3, 4, 5, 6].

  • Les nombres peuvent également être animés.

Only
Selected Objects

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.

Visible Objects

Limite l’exportation aux collections de scènes qui sont actuellement visibles.

Use Settings For

Détermine la visibilité des objets, des paramètres de modificateur et d’autres zones où il existe des paramètres différents pour la fenêtre et le rendu.

Render (Rendu)

Utiliser les paramètres de rendu pour la visibilité des objets, les paramètres de modificateur, etc.

Viewport

Utiliser les paramètres de la fenêtre pour la visibilité des objets, les paramètres du modificateur, etc.

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 îlots sans chevauchement qui essaie de remplir efficacement le Texture Space. Pour plus d’information, voir Pack Islands operator qui fonctionne sur le même principe.

Normals (Normales)

Lorsqu’il est activé, les Normales d’un objet sont exportés. Voir Custom Split Normals of Meshes ci-dessous pour plus d’informations.

Vertex Colors

When enabled, exports 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.

Subdivisions
Apply

Applique n’importe quels modificateurs de Subdivision de Surface avant d’enregistrer dans Alembic.

Use 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.

Triangulate

Triangule le maillage avant d’enregistrer dans Alembic. Pour plus de détails sur l’option spécifique, voir le Modificateur Triangulate.

Systèmes de Particules (Particle Systems)

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

Options des Systèmes de Particules.

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

Import des fichiers Alembic

Lors de l’importation d’un fichier Alembic, des modificateurs Mesh Sequence Cache sont automatiquement ajoutés aux maillages variables dans le temps. Pour les transformations d’objets variables en fonction du temps (donc les animations de rotation, translation ou homothétie), la Contrainte Transform Cache est utilisée.

Découpage personnalisé des Normales au Maillage

Blender prend en charge l’importation et l’exportation de normales personnalisées vers les fichiers Alembic. En règle générale, un maillage complètement lisse sera exporté sans les normales et produira ainsi le plus petit fichier Alembic. Cela se reflète dans l’importateur ; un maillage Alembic sans normales est chargé comme un maillage lisse.

A l’exportation, pour chaque maillage :

  • S’il a des Custom Loop Normals, les normales de boucle sont exportées.

  • Si un ou plusieurs polygones sont marqués à plat, les normales de boucle sont également exportées.

  • Sinon, aucune normale n’est exportée.

A l’importation, lorsque le maillage Alembic contient :

  • Les normales de boucle (kFacevaryingScope) sont utilisées comme des normales de boucle personnalisées, et permettent à Auto Smooth de les faire utiliser par Blender.

  • Les normales des sommets (kVertexScope ou kVaryingScope) sont converties en normales de boucle, et traitées comme ci-dessus.

  • S’il n’y a pas de normales, alors le maillage est marqué comme étant lisse.

  • Les types de normales non pris en charge (kConstantScope, kUniformScope, kUnknownScope) sont traités comme aucune normale (no normals).

Lorsqu’un maillage importé ne contient pas de normales, l’aspect final peut être contrôlé en activant la case Auto Smooth et en modifiant l’angle de seuil.

Temps de traitement

Contrairement à Blender et à de nombreuses autres applications et formats de fichiers, les fichiers Alembic n’ont aucune notion de trame. Alembic fonctionne purement avec le temps, et des valeurs qui sont échantillonnées au fil du temps. Par exemple, il n’y a aucun moyen de distinguer 30 FPS avec 2 échantillons par trame, et 60 FPS avec 1 échantillon par trame. Cela a conduit de nombreux développeurs à ne lire que hard-coded 24 FPS lors de la lecture des fichiers Alembic.

Blender utilise la fréquence de trames de la scène actuelle pour convertir un nombre de trames (dans Blender) en une durée en secondes (dans Alembic). Ainsi, vous pouvez importer un fichier Alembic qui a été produit à 120 images par seconde dans une scène Blender à 30 images par seconde et ne voir aucun étirement du temps.