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 peut être utilisé pour écrire un maillage animé sur un disque, et le relire rapidement et efficacement. Cela signifie qu’un maillage peut être animé avec un rig très gourmand en CPU, « précalculé » dans un fichier Alembic, et chargé dans le fichier de capture pour l’ombrage et l’éclairage avec une utilisation modérée du CPU.

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

L’É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.

Renderable Objects

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

Visible Objects

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

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 Texture Space. Voir pack islands operator qui fonctionne sur le même principe pour plus d’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.

Vertex Colors

Quand cette option est activée, exporte les couleurs de sommet.

Note

Actuellement, cela ne prend en charge que les couleurs de sommet statiques, et non les couleurs de sommet animées dynamiquement.

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

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.

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 24 FPS <https://developer.blender.org/T55288#754358>`__ 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.