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 de 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 tener d’entegistrer une représentation du réseau de calculs (basiquement des rigs) qui sont requis pour produire les positions de sommets animés et des transformations animées finales.
TL;DR: Alembic can be used to write an animated mesh to disk, and read it back quickly and efficiently. This means that a mesh can be animated with a very CPU-intensive rig, “baked” to an Alembic file, and loaded into the shot file for shading and lighting with only moderate CPU usage.
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)¶
- Start Frame et End Frame
- 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.
- Transform Samples
- Transform Samples sets the number of times per frame at which animated transformations are sampled and written to Alembic.
- Geometry Samples
- Geometry Samples sets the same, but then for animated geometry.
- 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.
- Selected Objects Only
- 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 Only
- C’est utile, par exemple, pour éviter d’exporter les formes d’os personnalisées.
- Visible Layers Only
- Limite l’export aux calques de scène qui sont actuellement visibles.
- 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 de monde..
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 l’espace de texture. Voir l”opérateur pack islands qui fonctionne sur le même principe pour plus d’information.
- Normals
- Quand l’option est activée, les normales d’un objet sont exportées.
- Vertex Colors
- Quand l’option est activée, elle exporte les couleurs de sommets. Pour le moment, ceci ne prend en charge que les couleurs de sommets statiques, et pas les couleurs de sommets 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.
- Use Subdivision 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.
- Apply Subdivision Surface
- Applies any Subdivision surface modifiers before writing to Alembic.
- Triangulate
- Triangule 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.
Importing Alembic Files¶
When importing an Alembic file, Mesh Sequence Cache modifiers are automatically added to time-varying meshes. For time-varying object transforms (so animation of rotation, location, or scale) the Transform Cache Constraint is used.
Custom Split Normals of Meshes¶
Blender supports the import and export of custom normals to Alembic files. As a basic rule of thumb, a completely smooth mesh will be exported without normals and thus produce the smallest Alembic file. This is reflected in the importer; an Alembic mesh without normals is loaded as a smooth mesh.
On export, for every mesh:
- If it has Custom Loop Normals then the loop normals are exported.
- If one or more polygons are marked flat then loop normals are also exported.
- Otherwise, no normals are exported.
On import, when the Alembic mesh contains:
- Loop normals (
kFacevaryingScope
) are used as custom loop normals, and enable Auto Smooth to have Blender actually use them. - Vertex normals (
kVertexScope
orkVaryingScope
) are convert to loop normals, and handle as above. - If there are no normals then the mesh is marked as smooth.
- Unsupported normal types (
kConstantScope
,kUniformScope
,kUnknownScope
) are handled as 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.
Handling Time¶
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 uses the current scene frame rate to convert a frame number (in Blender) to a time in seconds (in Alembic). As a result, you can import an Alembic file that was produced at 120 FPS into a Blender scene that is 30 FPS and still not see any time stretching.