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.

En bref, Alembic peut être utilisé pour écrire un maillage animé sur un lecteur et le relire rapidement et efficacement. Cela signifie qu’un maillage peut être animé avec une armature très gourmande en CPU, puis “pré-calculé” dans un fichier Alembic. Enfin, chargé dans le fichier de prise de vue pour l’ombrage et l’éclairage avec une utilisation modérée du processeur.

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

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

Generic and Scene Alembic Export options.

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.

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

Géométrie

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

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.

Object Options

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

Object options.

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

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.

Normals

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

Color Attributes

Quand cette option est activée, exporte les Color Attributes.

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 has no support for Particle Systems, in the same way that it does not support armatures. Hair is exported as animated zero-width curves. Particles are exported as animated points.

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 :

  • Loop normals (kFacevaryingScope) are used as custom loop normals, and enable Auto Smooth to have Blender actually use them.

  • 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).

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.

Temps de traitement

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