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, 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)¶
- 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 sub-frame d’animations.
- Samples Transform
Transform Samples définit le nombre de fois par trame où les transformations animées sont échantillonnées et écrites dans Alembic.
- Geometry
Les ensembles Geometry Samples sont les mêmes, mais pour la géométrie animée.
- 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.
- 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 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
Exports data of duplicated or instanced objects as Alembic instances; speeds up the export and can be disabled for compatibility with other software.
- 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é comme47
vers Alembic, et"Agent"
vers["Agent"]
. Cela correspond au comportement de nombreux autres DCC.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¶
- 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 Normales de découpage des maillages personnalisées 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 Subdivision 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.
Particle Systems (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. Hair est exporté 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 dans le temps (donc les animations de rotation, d’emplacement ou d’échelle), la Contrainte Transform Cache est utilisée.
Custom Split Normals of Meshes¶
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
oukVaryingScope
) 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 pas de normales (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.
Handling Time¶
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.