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.
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.
Général#
- Scale
Valeur permettant d’agrandir ou de réduire les objets par rapport à l’origine du monde.
Options#
- Relative Path
Sélectionner le fichier relatif au fichier blend.
- Set Frame Range
Si cette case est cochée, mettre à jour les images de début et de fin de la scène pour qu’elles correspondent à celles de l’archive Alambic.
- Is Sequence
Définir sur true si le cache est divisé en fichiers distincts.
- Validate Meshes
Vérifier le maillage importé pour les données corrompues et les corriger si nécessaire. Si désactivé, des données erronées peuvent provoquer des plantages lors de l’affichage ou de l’édition des maillages. Cette option ralentira l’importation mais est recommandée car les erreurs de données ne sont pas toujours évidentes.
- Always Add Cache Reader
Ajoute des modificateurs de cache et des contraintes aux objets importés même s’ils ne sont pas animés afin qu’ils puissent être mis à jour lors du rechargement de l’archive Alambic.
Export dans des fichiers Alembic#
Cette section décrit l’effet des différentes options d’export.
Général#
- 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.
- Include
- 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.
Scene#
- 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.
- 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, ainsi47
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.
- 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..
- Réglages
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.
Géométrie#
- UV Coordinates
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.
- Merge UVs
Si activé, les UV partageant le même sommet et le même emplacement seront fusionnés en un seul UV. Le fichier exporté peut être légèrement plus petit.
- 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)#
Alembic ne prend aucunement en charge les Systèmes de Particules, de même qu’il ne prend pas en charge les armatures.
- Export Hair
Les cheveux sont exportés sous forme de courbes animées de largeur nulle.
- Export Particles
Les particules sont exportées sous forme de points animés.
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 “Loop normals” (
kFacevaryingScope
) sont utilisées comme des “loop normals” personnalisées.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 aucune normale (no normals).
Lorsqu’un maillage importé ne contient pas de normales, l’aspect final peut être contrôlé à l’aide de Normal’s Shading.
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.