glTF 2.0¶
Référence
- Catégorie
Import-Export
- Menu
Utilisation¶
glTF™ (GL Transmission Format) est utilisé pour la transmission et le chargement de modèles 3D dans des applications Web et natives. glTF réduit la taille des modèles 3D et le traitement d’exécution nécessaire pour décompresser et rendre ces modèles. Ce format est couramment utilisé sur le Web et prend en charge divers moteurs 3D tels que Unity3D, Unreal Engine 4 et Godot.
Cet importateur/exportateur prend en charge les fonctionnalités glTF 2.0 suivantes:
Maillages
Matériaux (Principled BSDF) et Shadeless (Unlit)
Textures
Cameras
Lumières ponctuelles (ponctuelles, ponctuelles et directionnelles)
Extensions (listées ci-dessous)
Extras (propriétés personnalisées)
Animation (image clé, clé de forme et skinning)
Maillages¶
La structure interne de glTF imite les tampons de mémoire couramment utilisés par les puces graphiques lors du rendu en temps réel, de sorte que les actifs peuvent être livrés aux clients de bureau, Web ou mobiles et être affichés rapidement avec un traitement minimal. En conséquence, les quads et les n-gons sont automatiquement convertis en triangles lors de l’exportation vers glTF. Les UV discontinus et les arêtes plates peuvent entraîner un nombre de sommets modérément plus élevé dans glTF par rapport à Blender, car ces sommets sont séparés pour l’exportation. De même, les courbes et autres données non maillées ne sont pas conservées et doivent être converties en maillages avant l’exportation.
Materials¶
Le système de matériaux de base dans glTF prend en charge un flux de travail PBR métal/rugueux avec les canaux d’informations suivants:
Base Color
Metallic (Métallique)
Roughness (Rugosité)
Baked Ambient Occlusion
Normal Map (tangent space, +Y up)
Emissive
Some additional material properties or types of materials can be expressed using glTF extensions:
Clearcoat, Clearcoat Roughness, Clearcoat Normal (uses
KHR_materials_clearcoat
)Transmission (uses
KHR_materials_transmission
)« Shadeless » materials (uses
KHR_materials_unlit
)
Matériaux importés¶
Le système de matériaux glTF est différent des propres matériaux de Blender. Lorsqu’un fichier glTF est importé, le module complémentaire construira un ensemble de nœuds Blender pour répliquer au plus près chaque matériau glTF.
The importer supports Metal/Rough PBR (core glTF), Spec/Gloss PBR (KHR_materials_pbrSpecularGlossiness
)
and Shadeless (KHR_materials_unlit
) materials.
Astuce
L’examen du résultat du processus d’importation des matériaux est un bon moyen de voir des exemples des types de nœuds de matériaux et des paramètres qui peuvent être exportés vers glTF.
Matériaux exportés¶
L’exportateur prend en charge les matériaux Metal/Rough PBR (core glTF) et Shadeless (KHR_materials_unlit
). Il construira un matériau glTF basé sur les nœuds qu’il reconnaît dans le matériau Blender. Le processus d’exportation de matériau gère les paramètres décrits ci-dessous.
Note
Lorsque des textures d’image sont utilisées par des matériaux, glTF exige que les images soient au format PNG ou JPEG. Le module complémentaire convertira automatiquement les images d’autres formats, augmentant ainsi le temps d’exportation.
Base Color¶
La couleur de base glTF est déterminée en recherchant une entrée de couleur de base sur un nœud Principled BSDF. Si l’entrée n’est pas connectée, la couleur par défaut de l’entrée (le champ de couleur en regard du socket non connecté) est utilisée comme couleur de base pour le matériau glTF.
Si un nœud de texture d’image est connecté à l’entrée Base Color, cette image sera utilisée comme couleur de base glTF.
Metallic et Roughness¶
Ces valeurs sont lues à partir du nœud Principled BSDF. Si ces deux entrées ne sont pas connectées, le nœud affichera des curseurs pour contrôler leurs valeurs respectives entre 0,0 et 1,0, et ces valeurs seront copiées dans le glTF.
Lors de l’utilisation d’une image, glTF s’attend à ce que les valeurs métalliques soient codées dans le canal bleu (B
) et la rugosité à coder dans le canal vert (G
) de la même image. Si les images sont connectées au nœud Blender d’une manière qui ne suit pas cette convention, le module complémentaire peut tenter d’adapter l’image à la forme correcte lors de l’exportation (avec un temps d’exportation plus long).
Dans l’arborescence des nœuds Blender, il est recommandé d’utiliser un nœud RVB séparé pour séparer les canaux d’un nœud Image Texture, et connecter le canal vert (G
) à Roughness et bleu (B
) à Metallic. L’exportateur glTF reconnaîtra cet arrangement comme correspondant à la norme glTF, ce qui lui permettra de simplement copier la texture de l’image dans le fichier glTF lors de l’exportation.
Le nœud Image Texture pour cela doit avoir son Color Space défini sur Non-Color.
Baked Ambient Occlusion¶
glTF is capable of storing a baked ambient occlusion map.
Currently there is no arrangement of nodes that causes Blender
to use such a map in exactly the same way as intended in glTF.
However, if the exporter finds a custom node group by the name of glTF Settings
, and
finds an input named Occlusion
on that node group,
it will look for an Image Texture attached there to use as the occlusion map in glTF.
The effect need not be shown in Blender, as Blender has other ways of showing ambient occlusion,
but this method will allow the exporter to write an occlusion image to the glTF.
This can be useful to real-time glTF viewers, particularly on platforms where there
may not be spare power for computing such things at render time.
Astuce
Le moyen le plus simple de créer le groupe de nœuds personnalisé consiste à importer un modèle glTF existant qui contient une carte d’occlusion, telle que la bouteille d’eau ou un autre modèle existant. Un groupe de nœuds personnalisé créé manuellement peut également être utilisé.
glTF stocke l’occlusion dans le canal rouge (R
), ce qui lui permet de partager éventuellement la même image avec la rugosité et les canaux métalliques.
Astuce
The Cycles render engine has a Bake panel that can be used to bake
ambient occlusion maps. The resulting image can be saved and connected
directly to the glTF Settings
node.
Normal Map¶
Pour utiliser une texture normale dans glTF, connectez la sortie couleur d’un nœud Image Texture à l’entrée couleur d’un nœud Normal Map, puis connectez la sortie Normal de Normal Map à l’entrée Normal du nœud Principled BSDF. Le nœud Image Texture pour cela doit avoir sa propriété Color Space définie sur Non-Color.
Le nœud Normal Map doit rester sur sa propriété par défaut Tangent Space car c’est le seul type de normal map actuellement pris en charge par glTF. La force de la carte normale peut être ajustée sur ce nœud. L’exportateur n’exporte pas ces nœuds directement, mais les utilisera pour localiser l’image correcte et copiera le paramètre de force dans le glTF.
Astuce
Le moteur de rendu Cycles dispose d’un panneau Bake qui peut être utilisé pour créer des textures normales d’espace tangent à partir de presque n’importe quel autre arrangement de nœuds vectoriels normaux. Réglez le type Bake sur Normal. Conservez les paramètres d’espace par défaut (espace : Tangent, R: + X, G: + Y, B: + Z) lorsque vous utilisez ce panneau Bake pour glTF. L’image pré-calculée résultante peut être enregistrée et connectée à un nouveau matériau à l’aide du nœud Normal Map comme décrit ci-dessus, ce qui lui permet de s’exporter correctement.
Voir : Cycles Render Baking
Emissive¶
Un nœud Image Texture peut être connecté à l’entrée Emission sur le nœud Principled BSDF pour inclure une carte émissive avec le matériau glTF. Alternativement, le nœud Image Texture peut être connecté à un nœud de Emission shader, et éventuellement combiné avec des propriétés d’un nœud Principled BSDF via un nœud Add Shader.
Si la texture émissive est seule dans le matériau, il est préférable de définir la Base Color par défaut sur le noir et la Roughness par défaut sur 1,0. Cela minimise l’influence des autres canaux s’ils ne sont pas nécessaires.
Clearcoat (vernis)¶
When the Clearcoat input on the Principled BSDF node has a non-zero default value or
Image Texture node connected, the KHR_materials_clearcoat
glTF extension will be
included in the export. This extension will also include a value or Image Texture
from the Clearcoat Roughness input if available.
Si des Image Textures sont utilisées, glTF exige que les valeurs de clearcoat soient écrites dans le canal rouge (R
) et la Clearcoat Roughness dans le canal vert (G
). Si des images monochromes sont connectées, l’exportateur les remappera sur ces canaux de couleur.
L’entrée Clearcoat Normal accepte les mêmes types d’entrées que l’entrée Normal de base, en particulier une carte normale d’espace tangent avec +Y vers le haut et une force définie par l’utilisateur. Cette entrée peut réutiliser la même texture normale que celle utilisée par le matériau de base, ou peut se voir attribuer sa propre texture normale, ou peut être laissée déconnectée pour un revêtement lisse.
Tous les nœuds de texture d’image utilisés pour l’ombrage clearcoat doivent avoir leur espace colorimétrique défini sur Non-Color.
Transmission¶
When the Transmission input on the Principled BSDF node has a non-zero default value or
Image Texture node connected, the KHR_materials_transmission
glTF extension will be
included in the export. When a texture is used, glTF stores the values in the red (R
) channel.
The Color Space should be set to Non-Color.
Transmission est différent du mélange alpha, car la transmission permet des réflexions spéculaires à pleine puissance. Dans glTF, le mélange alpha est destiné à représenter des matériaux physiques qui sont partiellement absents de la géométrie spécifiée, tels que la gaze médicale. La transmission est destinée à représenter des matériaux physiques qui sont solides mais qui permettent à la lumière réfléchie de manière non spéculaire de se transmettre à travers le matériau, comme le verre.
glTF n’offre pas de “Transmission Roughness” distincte, mais la rugosité de base du matériau peut être utilisée pour flouter la transmission, comme le verre dépoli.
Astuce
En général, le mode de blend alpha d’un matériau transmissif doit rester “Opaque”, le paramètre par défaut, à moins que le matériau ne couvre que partiellement la géométrie spécifiée.
Note
Dans les moteurs en temps réel où la transmission est prise en charge, diverses limitations techniques du moteur peuvent déterminer quelles parties de la scène sont visibles à travers la surface de transmission. En particulier, les matériaux transmissifs peuvent ne pas être visibles derrière d’autres matériaux transmissifs. Ces limitations affectent la transmission physique, mais pas les matériaux non transmissifs mélangés en alpha.
Avertissement
La transmission est complexe à implémenter pour les moteurs de rendu en temps réel, et la prise en charge de l’extension glTF KHR_materials_transmission
n’est pas encore répandue.
Double-Sided / Backface Culling¶
Pour les matériaux où seules les faces avant seront visibles, activez le tri de la face arrière dans le panneau Settings d’un matériau Eevee. Lorsque vous utilisez d’autres moteurs (Cycles, Workbench), vous pouvez passer temporairement à Eevee pour configurer ce paramètre, puis revenir en arrière.
Ne cochez pas cette case pour les matériaux double-face.
Blend Modes (Modes de Mélange)¶
L’entrée Base Color peut éventuellement fournir des valeurs alpha. La manière dont ces valeurs sont traitées par glTF dépend du mode blend sélectionné.
Lorsque le moteur de rendu Eevee est sélectionné, chaque matériau dispose d’un Blend Mode dans le panneau des paramètres de matériau. Utilisez ce paramètre pour définir la manière dont les valeurs alpha du canal Base Color sont traitéesdans glTF. Trois paramètres sont pris en charge par glTF:
- Opaque
Les valeurs alpha sont ignorées.
- Alpha Blend
Des valeurs alpha inférieures provoquent un mélange avec les objets d’arrière-plan.
- Alpha Clip
Les valeurs alpha inférieures au paramètre Clip Threshold entraîneront le rendu de certaines parties du matériau. Tout le reste est rendu opaque.
Note
Sachez que la transparence (ou Mode Alpha Blend) est complexe à rendre pour les moteurs en temps réel et peut se comporter de manière inattendue après l’exportation. Dans la mesure du possible, utilisez plutôt le mode Alpha Clip ou placez des polygones Opaque derrière une seule couche de polygones Alpha Blend.
UV Mapping¶
Le contrôle de la sélection et des transformations de la map UV est disponible en connectant un nœud UV Map et un nœud Mapping à n’importe quel nœud Image Texture.
Les paramètres du nœud Mapping sont exportés à l’aide d’une extension glTF nommée KHR_texture_transform
. Il y a un sélecteur de type de mappage en haut. Point est le type recommandé pour l’exportation. Texture et Vector sont également pris en charge. Les décalages pris en charge sont:
Location - X et Y
Rotation - Z uniquement
Scale - X et Y
Pour le type Texture, Scale X et Y doivent être égales (mise à l’échelle uniforme).
Astuce
Ces nœuds sont facultatifs. Tous les lecteurs glTF ne prennent pas en charge plusieurs cartes UV ou transformations de texture.
Factors¶
Tous les nœuds de texture d’image peuvent éventuellement être multipliés par une couleur constante ou un scalaire. Ceux-ci seront écrits sous forme de facteurs dans le fichier glTF, qui sont des nombres multipliés par les textures d’image spécifiées. Celles-ci ne sont pas courantes.
Exemple¶
Un seul matériau peut utiliser tout ce qui précède en même temps, si on le souhaite. Cette figure montre une structure de nœud typique lorsque plusieurs des options ci-dessus sont appliquées à la fois:
Exportation d’un matériau sans ombre (non éclairé)¶
Pour exporter un matériau non éclairé, mélangez-le dans un rayon de caméra et évitez d’utiliser le nœud Principled BSDF.
Extensions¶
Le format de base glTF 2.0 peut être étendu avec des informations supplémentaires, en utilisant les extensions glTF. Cela permet au format de fichier de contenir des détails qui n’étaient pas considérés comme universels au moment de la première publication. Tous les lecteurs glTF ne prennent pas en charge toutes les extensions, mais certaines sont assez courantes.
Certain Blender features can only be exported to glTF via these extensions. The following glTF 2.0 extensions are supported directly by this add-on:
Import
KHR_materials_pbrSpecularGlossiness
KHR_lights_punctual
KHR_materials_unlit
KHR_texture_transform
KHR_materials_clearcoat
KHR_mesh_quantization
Export
KHR_draco_mesh_compression
KHR_lights_punctual
KHR_materials_clearcoat
KHR_materials_transmission
KHR_materials_unlit
KHR_texture_transform
Extensions glTF tierces¶
It is possible for Python developers to add Blender support for additional glTF extensions by writing their own third-party add-on, without modifying this glTF add-on. For more information, see the example on GitHub and if needed, register an extension prefix.
Custom Properties¶
Les propriétés personnalisées sont toujours importées et seront exportées à partir de la plupart des objets si l’option extras
de l’objet correspondant dans le fichier glTF.
Contrairement aux extensions glTF, les propriétés personnalisées (extras) n’ont pas d’espace de noms défini et peuvent être utilisées à des fins spécifiques à l’utilisateur ou à l’application.
Animation¶
glTF allows multiple animations per file, with animations targeted to particular objects at time of export. To ensure that an animation is included, either (a) make it the active Action on the object, (b) create a single-strip NLA track, or (c) stash the action.
Supported
Only certain types of animation are supported:
Keyframe (translation, rotation, scale)
Shape keys
Armatures / skinning
Animation of other properties, like lights or materials, will be ignored.
An NLA Strip animation consists of multiple actions on multiple objects that should play together. To create an NLA strip animation with the name « My Animation », push the action that should play each object onto an NLA track for that object with the name « My Animation ».
NLA Strip animations will be exported if the
option is selected (on by default). All glTF animations are imported as NLA Strip animations.If option is disabled, Blender NLA strip actions will be ignored. Only active action of each objects will be taken into account, and merged into a single glTF animation.
Note
Pour échantillonner des animations clés de forme contrôlées par des pilotes utilisant des transformations osseuses, elles doivent être sur un objet maillé qui est un enfant direct de l’armature des os.
Variations de format de fichier¶
La spécification glTF identifie différentes manières dont les données peuvent être stockées. L’importateur gère toutes ces manières. L’exportateur demandera à l’utilisateur de sélectionner l’un des formulaires suivants:
glTF Binary (.glb
)¶
Ceci produit un fichier .glb unique avec toutes les données de maillage, les textures d’image et les informations associées regroupées dans un seul fichier binaire.
Astuce
L’utilisation d’un seul fichier facilite le partage ou la copie du modèle sur d’autres systèmes et services.
glTF Separate (.gltf
+ .bin
+ textures)¶
Produit un fichier .gltf
basé sur du texte JSON décrivant la structure globale, avec un fichier .bin
contenant des données de maillage et de vecteur, et éventuellement un certain nombre de fichiers .png
ou .jpg
contenant des textures d’image référencées par le fichier .gltf
.
Astuce
Le fait de disposer d’un assortiment de fichiers séparés permet à un utilisateur de revenir en arrière et de modifier beaucoup plus facilement n’importe quel JSON ou images une fois l’exportation terminée.
Note
Sachez que le partage de ce format nécessite le partage de tous ces fichiers séparés ensemble en tant que groupe.
glTF Embedded (.gltf
)¶
Cela produit un fichier .gltf
basé sur du texte JSON, avec toutes les données de maillage et les données d’image codées (à l’aide de Base64) dans le fichier. Ce formulaire est utile si l’actif doit être partagé via une connexion en texte brut uniquement.
Avertissement
C’est le moins efficace des formulaires disponibles et ne doit être utilisé qu’en cas de besoin.
Propriétés¶
Import¶
- Pack Images
Empaqueter toutes les images dans le fichier blend.
- Shading (Ombrage)
Comment les normales sont calculées lors de l’importation.
- Guess Original Bind Pose
Détermine la pose des os (et par conséquent des maillages avec peau) en Mode Édition. Lorsque cette option est activée, tente de deviner la pose qui a été utilisée pour calculer les matrices de liaison inverses.
- Bone Direction
Modifie l’heuristique utilisée par l’importateur pour décider où placer les pointes d’os. Notez que le paramètre Fortune peut entraîner des inexactitudes dans les modèles qui utilisent une mise à l’échelle non uniforme. Sinon, c’est purement esthétique.
Export¶
- Format
Voir : Variations de format de fichier.
- Textures
Folder to place texture files in. Relative to the gltf-file.
- Copyright
Droits légaux et conditions du modèle.
- Remember Export Settings
Stocker les paramètres d’exportation dans le fichier blend, afin qu’ils soient rappelés la prochaine fois que le fichier sera ouvert.
Include¶
- Selected Objects
Exporter uniquement les objets sélectionnés.
- Custom Properties
Exporter les propriétés personnalisées en tant qu’extras glTF.
- Cameras
Exporter les caméras.
- Punctual Lights
Exporter les lumières directionnelles, point et spot. Utilise l’extension glTF
KHR_lights_punctual
.
Transform¶
- Y Up
Exporter en utilisant la convention glTF, +Y vers le haut.
Geometry¶
- Apply Modifiers
Apply modifiers (excluding armatures) to mesh objects.
- UVs
Exporter les UV (coordonnées de texture) avec des maillages.
- Normals (Normales)
Exporter les normales de sommet avec des maillages.
- Tangents
Exporter les tangentes aux sommets avec des maillages.
- Vertex Colors
Export vertex colors with meshes.
- Materials
Export materials.
- Images
Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web applications due to the smaller file size.
Compression¶
Compresser les maillages à l’aide de Google Draco.
- Compression Level
Une compression plus élevée entraîne un encodage et un décodage plus lents.
- Quantization Position
Des valeurs plus élevées se traduisent par de meilleurs taux de compression.
- Normal
Des valeurs plus élevées se traduisent par de meilleurs taux de compression.
- Texture Coordinates
Des valeurs plus élevées se traduisent par de meilleurs taux de compression.
- Generic
Des valeurs plus élevées se traduisent par de meilleurs taux de compression.
Animation¶
- Use Current Frame
Export the scene in the current animation frame.
Animation¶
Exports active actions and NLA tracks as glTF animations.
- Limit to Playback Range
Cliper les animations à la plage de lecture sélectionnée.
- Sampling Rate
À quelle fréquence évaluer les valeurs animées (en images).
- Always Sample Animations
Apply sampling to all animations.
- Group by NLA Track
Whether to export NLA strip animations.
- Export Deformation Bones Only
Export deformation bones only (and needed bones for hierarchy).
Clés de forme¶
Exporter les clés de forme (cibles de morphing).
- Shape Key Normals
Exporter les normales de sommet avec des clés de forme (cibles de morphing).
- Shape Key Tangents
Exporter les tangentes de sommet avec des clés de forme (cibles de morphing).
Skinning¶
Export skinning (armature) data.
- Include All Bone Influences
Autoriser plus de 4 influences de sommet d’articulation. Les modèles peuvent apparaître de manière incorrecte dans de nombreux afficheurs.
Contribuer¶
Cet importateur/exportateur est développé via glTF-Blender-IO repository, où vous pouvez déposer des rapports de bogues, soumettre des demandes de fonctionnalités ou contribuer au code.
La discussion et le développement du format glTF 2.0 lui-même ont lieu sur glTF GitHub repository et les commentaires y sont les bienvenus.