glTF 2.0

Referencia

Categoría

Importar-Exportar

Menú

File ‣ Import/Export ‣ glTF 2.0 (.glb, .gltf)

Uso

glTF™ (GL Transmission Format) es utilizado para la transmisión y la carga de modelos 3D en aplicaciones web y nativas. glTF reduce el tamaño de los modelos 3D y el procesamiento del runtime necesario para desempaquetar y representar aquellos modelos. Este formato es comúnmente usado en la web, y tiene soporte en varios motores 3D tales como Unity3D, Unreal Engine 4 y Godot.

Este importador/exportador soporta las siguientes características glTF 2.0:

  • Mallas

  • Materiales (Principled BSDF) and Shadeless (Unlit)

  • Texturas

  • Cámaras

  • Luces puntuales (punto, focal, y direccional)

  • Extensions (listed below)

  • Extras (propiedades personalizadas)

  • Animación (keyframe, clave de forma, and skinning)

Mallas

La estructura interna de glTF imita los buffers de memoria comúnmente utilizados por chips gráficos cuando se renderizan en tiempo real, de modo que los activos se pueden entregar a clientes de escritorio, web o móviles y mostrarse rápidamente con un procesamiento mínimo. Como resultado, los quads y los n-gons se convierten automáticamente en triángulos cuando se exportan a glTF. Los UV discontinuos y los bordes de sombreado-plano pueden dar como resultado un recuento de vértices moderadamente más alto en glTF en comparación con Blender, ya que dichos vértices se separan para la exportación. Del mismo modo, las curvas y otros datos que no son de malla no se conservan y deben convertirse en mallas antes de la exportación.

Materiales

El sistema central de materiales en glTF soporta un flujo de trabajo metal/rough PBR con los siguientes canales de información:

  • Color Base

  • Metallic

  • Roughness (Rugosidad)

  • 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)

../../_images/addons_import-export_scene-gltf2_material-channels.jpg

Un ejemplo de los varios mapas de imágenes disponibles en el formato central glTF 2.0. Este es el modelo de ejemplo de la botella para agua mostrado junto con las partes de sus varios mapas de imágenes.

Materiales importados

El sistema de materiales glTF es diferente de los propios materiales de Blender. Cuando un archivo glTF es importado, el add-on construirá un conjunto de nodos Blender para replicar cada material glTF tan parecido como sea posible.

The importer supports Metal/Rough PBR (core glTF), Spec/Gloss PBR (KHR_materials_pbrSpecularGlossiness) and Shadeless (KHR_materials_unlit) materials.

Truco

Examinar el resultado del proceso de importación de los materiales es una buena forma de ver ejemplos de los tipos de nodos de materiales y los ajustes que pueden ser exportados a glTF.

Materiales Exportados

El exportador soporta materiales Metal/Rough PBR (core glTF) y Shadeless (KHR_materials_unlit). Construirá un material glTF basándose en los nodos que reconozca en el material Blender. El proceso de exportación de materiales maneja los ajustes descritos debajo.

Nota

Cuando las texturas de imágenes son utilizadas por los materiales, glTF requiere que las imágenes estén en formato PNG o JPEG. El add-on convierte imágenes automáticamente a partir de otros formatos, incrementando el tiempo de exportación.

Color Base

El color base del glTF es determinado al buscar una entrada Base Color en un nodo Principled BSDF. Si la entrada no está conectada, el color por defecto de la entrada (el campo del color al lado del conector inconexo) es utilizado como Base Color para el material glTF.

../../_images/addons_import-export_scene-gltf2_material-base-color-solid-green.png

Puede ser especificado un color base sólido directamente en el nodo.

Si el nodo Image Texture resulta estar conectado a la entrada Base Color, la imagen será utilizada como el color base del glTF.

../../_images/addons_import-export_scene-gltf2_material-base-color-image-hookup.png

Una imagen es utilizada como el color base del glTF.

Metallic and Roughness

Estos valores son leídos desde el nodo Principled BSDF. Si ambas entradas están desconectadas, el nodo mostrará sliders para controlar sus respectivos valores entre 0.0 y 1.0, y estos valores serán copiados en el glTF.

Cuando se usa una imagen, glTF espera que el valor metallic sea codificado en el canal azul (B), y el valor roughness sea codificado en el canal verde (G) de la misma imagen. Si las imágenes están conectadas al nodo Blender en una forma que no siga esta convención, el add-on puede intentar adaptar la imagen a la forma correcta durante la exportación (con un tiempo de exportación incrementado).

En el árbol de nodos de Blender, se recomienda usar un nodo Separar RVA para separar los canales de un nodo Image Texture, y conectar el canal verde (G) a Roughness, y el azul (B) a Metallic. El exportador glTF reconocerá esta disposición como la correspondiente al estándar de glTF, y eso le permitirá básicamente copiar la textura de la imagen en el archivo glTF durante la exportación.

El nodo Image Texture para esto debería tener su Color Space establecido a Non-Color.

../../_images/addons_import-export_scene-gltf2_material-metal-rough.png

Una imagen metallic/roughness conectada de forma consistente con el estándar glTF, permitiéndole ser usada textualmente dentro de un archivo glTF exportado.

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.

../../_images/addons_import-export_scene-gltf2_material-occlusion-only.png

Un mapa de oclusión ambiental con pre-baking, conectado a un nodo que no renderiza, pero que exportará a glTF.

Truco

La forma más fácil de crear un grupo de nodos personalizado es importar un modelo glTF existente que contenga un mapa de oclusión, tal como la botella para agua u otro modelo existente. También puede ser usado un grupo de nodos personalizados creados manualmente.

glTF almacena la oclusión en el canal rojo (R), permitiéndole, de forma opcional, compartir la misma imagen con los canales roughness y metallic.

../../_images/addons_import-export_scene-gltf2_material-orm-hookup.png

Esta combinación de nodos imita la forma en que glTF empaqueta los valores de oclusión, roughness y metallic, en una imagen simple.

Truco

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

Para usar un mapa de normales en glTF, hay que conectar la salida de color del nodo Image Texture con la entrada de color del nodo Normal Map y, entonces, conectar la salida normal de Normal Map con la entrada normal del nodo Principled BSDF. El nodo Image Texture para esto debería tener su propiedad Color Space establecida a Non-Color.

El nodo Normal Map debe permanecer con su propiedad por defecto de Tangent Space, puesto que este es el único tipo de mapa de normales actualmente soportado por glTF. La fortaleza del mapa de normales puede ser ajustada sobre este nodo. El exportador no está exportando directamente a dichos nodos, sino que los utilizará para ubicar la imagen correcta y copiará los ajustes de fortaleza en el glTF.

../../_images/addons_import-export_scene-gltf2_material-normal.png

Una imagen de un mapa de normales conectado de tal forma que el exportador lo encontrará y lo copiará en el archivo glTF.

Truco

El motor de rendering, Cycles, tiene un panel Bake que puede ser utilizado para hacer el baking de los mapas de normales de espacio tangente a partir de prácticamente cualquier otra disposición de nodos de vectores de normales. Intercambiar el tipo Bake a Normal. Mantén los ajustes del espacio por defecto (espacio: Tangent, R: +X, G: +Y, B: +Z) cuando utilices este panel de baking para el glTF. La imagen resultante a la que se le hizo baking, puede ser guardada y conectada en un nuevo material utilizando el nodo Normal Map como se describió anteriormente, permitiéndole exportar de forma correcta.

Ver: Cycles Render Baking

Emissive

Un nodo Image Texture puede ser conectado a la entrada Emission en el nodo Principled BSDF para incluir un mapa emisivo con el glTF. Alternativamente, el nodo Image Texture puede ser conectado a un nodo shader Emission y, opcionalmente, combinado con las propiedades de un nodo Principled BSDF, pasando por un nodo Add Shader.

Si el mapa emisivo es el único material, lo mejor es establecer Base Color por defecto a negro, y Roughness por defecto a 1.0. Esto minimiza la influencia de otros canales, si estos no son necesarios.

../../_images/addons_import-export_scene-gltf2_material-emissive.png

Esta disposición soporta la compatibilidad hacia atrás. Es más simple utilizar directamente al nodo Principled BSDF.

Clearcoat

When the Clearcoat input on the Principled BSDF node has a nonzero 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.

If Image Textures are used, glTF requires that the clearcoat values be written to the red (R) channel, and Clearcoat Roughness to the green (G) channel. If monochrome images are connected, the exporter will remap them to these color channels.

The Clearcoat Normal input accepts the same kinds of inputs as the base Normal input, specifically a tangent-space normal map with +Y up, and a user-defined strength. This input can reuse the same normal map that the base material is using, or can be assigned its own normal map, or can be left disconnected for a smooth coating.

Todos los nodos Image Texture usados para sombreado de barniz deberían tener su Espacio de Color establecido a Non-Color.

../../_images/addons_import-export_scene-gltf2_material-clearcoat.png

An example of a complex clearcoat application that will export correctly to glTF. A much simpler, smooth coating can be applied from just the Principled BSDF node alone.

Transmisión

When the Transmission input on the Principled BSDF node has a nonzero 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 is different from alpha blending, because transmission allows full-strength specular reflections. In glTF, alpha blending is intended to represent physical materials that are partially missing from the specified geometry, such as medical gauze wrap. Transmission is intended to represent physical materials that are solid but allow non-specularly-reflected light to transmit through the material, like glass.

glTF does not offer a separate «Transmission Roughness», but the material’s base roughness can be used to blur the transmission, like frosted glass.

Truco

Typically the alpha blend mode of a transmissive material should remain «Opaque», the default setting, unless the material only partially covers the specified geometry.

Nota

In real-time engines where transmission is supported, various technical limitations in the engine may determine which parts of the scene are visible through the transmissive surface. In particular, transmissive materials may not be visible behind other transmissive materials. These limitations affect physically-based transmission, but not alpha-blended non-transmissive materials.

Advertencia

Transmission is complex for real-time rendering engines to implement, and support for the KHR_materials_transmission glTF extension is not yet widespread.

Double-Sided / Backface Culling

Para los materiales donde sólo las caras frontales estarán visibles, activa Backface Culling en el panel Settings del material Eevee. Cuando uses otros motores (Cycles, Workbench), puedes intercambiar temporalmente a Eevee para configurar este ajuste, entonces reviértelo.

Deja esta caja sin seleccionar para los materiales de lados dobles.

../../_images/addons_import-export_scene-gltf2_material-backface-culling.png

La inversa de este ajuste lo controla la bandera DoubleSided de glTF.

Modos de Mezcla

La entrada Base Color, opcionalmente, puede proveer valores alfa. Cómo son tratados estos valores por glTF, depende del modo de mezcla seleccionado.

Con el motor de rendering Eevee seleccionado, cada material tiene un Modo de Mezcla en el panel de ajustes de los materiales. Utiliza estos ajustes para definir cómo son tratados los valores alfa del canal Base Color en glTF. Son soportados tres ajustes para glTF:

Opaque

Los valores alfa son ignorados.

Mezcla Alfa

Los valores alfa más bajos hacen que se mezcle con los objetos de fondo.

Alpha Clip

Los valores alfa debajo del ajuste Clip Threshold harán que las porciones del material no sean dibujadas de ninguna forma. Todo lo demás se representa como opaco.

../../_images/addons_import-export_scene-gltf2_material-alpha-blend.png

Con el motor Eevee seleccionado, los modos de mezcla del material son configurables.

Nota

Sé consciente de que la transparencia (o modo Alpha Blend) es compleja para los motores que tengan que representarla en tiempo real, y puede comportarse de formas inesperadas después de la exportación. Cuando sea posible, utiliza en su lugar el modo Alpha Clip, pon polígonos Opaque detrás de sólo una capa simple de polígonos Alpha Blend.

UV Mapping

El control sobre la selección de mapas UV y las transformaciones está disponible al conectar un nodo UV Map y un nodo Mapping con un nodo Image Texture.

Los ajustes del nodo Mapping son exportados utilizando una extensión glTF llamada KHR_texture_transform. Hay un selector de tipos de mapeos sobre la parte de arriba. Point es el tipo recomendado para la exportación. Texture y Vector también son soportados. Los desplazamientos soportados son:

  • Location - X e Y

  • Rotation - sólo Z

  • Scale - X e Y

Para el tipo Texture, Scale X e Y deben ser iguales (escala uniforme).

../../_images/addons_import-export_scene-gltf2_material-mapping.png

Una elección intencional del mapeo UV.

Truco

Estos nodos son optativos. No todos los lectores de gITF soportan múltiples mapas UV o transformaciones de texturas.

Factores

Cualquier nodo Image Texture opcionalmente puede ser multiplicado por un color constante o un escalar. Estos serán escritos como factores en el archivo glTF, que son números que son multiplicados por las texturas de las imágenes especificadas. Éstos no son comunes.

Ejemplo

Un material simple puede utilizar todo lo anterior al mismo tiempo, si se desea. Esta figura muestra una estructura de nodos típica cuando varias de las opciones anteriores son aplicadas a la vez:

../../_images/addons_import-export_scene-gltf2_material-principled.png

Un material Principled BSDF con una textura emisiva.

Exporting a Shadeless (Unlit) Material

To export an unlit material, mix in a camera ray, and avoid using the Principled BSDF node.

../../_images/addons_import-export_scene-gltf2_material-unlit.png

One of several similar node arrangements that will export KHR_materials_unlit and render shadeless in Blender.

Extensiones

El formato central glTF 2.0 puede ser extendido con información extra, utilizando extensiones glTF. Esto permite que el formato del archivo mantenga detalles que no eran considerados universales en el momento de la primera publicación. No todos los lectores glTF soportan todas las extensiones, pero algunas son bastante comunes.

Ciertas características de Blender sólo pueden ser exportadas a glTF a través de estas extensiones. Las siguientes extensiones de glTF 2.0 son soportadas directamente por este add-on:

Importar

  • KHR_materials_pbrSpecularGlossiness

  • KHR_lights_punctual

  • KHR_materials_unlit

  • KHR_texture_transform

  • KHR_materials_clearcoat

  • KHR_mesh_quantization

Exportar

  • KHR_draco_mesh_compression

  • KHR_lights_punctual

  • KHR_materials_clearcoat

  • KHR_materials_transmission

  • KHR_materials_unlit

  • KHR_texture_transform

Third-party glTF Extensions

Es posible que los desarrolladores de Python agreguen compatibilidad con Blender para extensiones glTF adicionales al escribir su propio complemento de terceros, sin modificar este complemento glTF. Para más información, vea el ejemplo en GitHub y si es necesario, registrar un prefijo de extensión.

Propiedades Personalizadas

Custom properties are always imported, and will be exported from most objects if the Include ‣ Custom Properties option is selected before export. These are stored in the extras field on the corresponding object in the glTF file.

Unlike glTF extensions, custom properties (extras) have no defined namespace, and may be used for any user-specific or application-specific purposes.

Animación

A glTF animation changes the transforms of objects or pose bones, or the values of shape keys. One animation can affect multiple objects, and there can be multiple animations in a glTF file.

Importar

Imported models are set up so that the first animation in the file is playing automatically. Scrub the Timeline to see it play.

When the file contains multiple animations, the rest will be organized using the Nonlinear Animation editor. Each animation becomes an action stashed to an NLA track. The track name is the name of the glTF animation. To make the animation within that track visible, click Solo (star icon) next to the track you want to play.

../../_images/addons_import-export_scene-gltf2_animation-solo-track.png

This is the fox sample model showing its «Run» animation.

If an animation affects multiple objects, it will be broken up into multiple parts. The part of the animation that affects one object becomes an action stashed on that object. Use the track names to tell which actions are part of the same animation. To play the whole animation, you need to enable Solo (star icon) for all its tracks.

Nota

There is currently no way to see the non-animated pose of a model that had animations.

Exportar

You can export animations by creating actions. How glTF animations are made from actions is controlled by the Animation ‣ Group by NLA Track export option.

Group by NLA Track on (default)

An action will be exported if it is the active action on an object, or it is stashed to an NLA track (e.g. with the Stash or Push Down buttons in the Action Editor). Actions which are not associated with an object in one of these ways are not exported. If you have multiple actions you want to export, make sure they are stashed!

A glTF animation can have a name, which is the action name by default. You can override it by renaming its NLA track from NLATrack/[Action Stash] to the name you want to use. For example, the Fig. fox model will export with three animations, «Survey», «Walk», and «Run». If you rename two tracks on two different objects to the same name, they will become part of the same glTF animation and will play together.

The importer organizes actions so they will be exported correctly with this mode.

Group by NLA Track off

In this mode, the NLA organization is not used, and only one animation is exported using the active actions on all objects.

Nota

For both modes, remember only certain types of animation are supported:

  • Object transform (location, rotation, scale)

  • Pose bones

  • Shape key values

Animation of other properties, like physics, lights, or materials, will be ignored.

Nota

In order to sample shape key animations controlled by drivers using bone transformations, they must be on a mesh object that is a direct child of the bones” armature.

Variantes de los formatos de los archivos

La especificación glTF identifica diferentes formas en que los datos pueden ser almacenados. El importador las maneja a todas. El exportador le pedirá al usuario que seleccione una de las siguientes formas:

glTF Binary (.glb)

Esto produce un archivo .glb simple, con todos los datos de las mallas, las texturas de las imágenes y la información relacionada, empaquetada en un archivo binario simple.

Truco

Usar un archivo simple facilita el compartir o copiar el modelo en otros sistemas o servicios.

glTF Separate (.gltf + .bin + texturas)

Esto produce una archivo basado en texto JSON .gltf que describe la estructura completa, conjuntamente con un archivo .bin que contiene los datos de las mallas y los vectores y, opcionalmente, un número de archivos .png o .jpg que contienen las texturas de las imágenes referenciadas por el archivo .gltf.

Truco

Tener una diversidad de archivos separados, hace mucho más fácil que un usuario vuelva y edite cualquier JSON o imagen después de que la exportación se haya completado.

Nota

Sé consciente de que compartir este formato requiere compartir todos estos archivos separados como un grupo.

glTF Embedded (.gltf)

Esto produce un archivo basado en texto JSON .gltf, con todos los datos de las mallas y los datos de las imágenes codificados (usando Base64) dentro del archivo. Este formato es útil si el activo debe ser compartido sobre una conexión de texto sin formato.

Advertencia

Esta es la menos eficiente de las formas disponibles, y sólo debería ser utilizada cuando sea requerido.

Propiedades

Importar

Pack Images

Empaqueta todas las imágenes en un archivo blend.

Sombreado

Cómo las normales son computadas durante la importación.

Guess Original Bind Pose

Determina la pose para los huesos (y, consecuentemente, las mallas con el skinning) en Modo Edición Cuando está activado, intenta adivinar la pose que fue utilizada para computar las matrices de vinculación inversas.

Bone Direction

Cambia la heurística que utiliza el importador para decidir si ponerle puntas a los huesos. Notar que la característica Fortune podría causar imprecisiones en los modelos que no utilizan una escala uniforme. De otra forma, esto es puramente estético.

Exportar

Formato

Ver: File Format Variations.

Texturas

Carpeta donde colocar archivos de textura. Relativo al archivo gltf.

Copyright

Derechos legales y condiciones para el modelo.

Remember Export Settings

Almacena ajustes de exportación en un archivo blend, para que sean recordados la próxima vez que el archivo sea abierto.

Incluir

Selected Objects

Sólo exporta objetos seleccionados.

Visible Objects

Export visible objects only.

Objetos Renderizables

Export renderable objects only.

Colección Activa

Export objects from active collection only.

Escena Activa

Export active scene only.

Propiedades Personalizadas

Export custom properties as glTF extras.

Cámaras

Export cameras.

Luces Puntuales

Exporta luces direccionales, de punto y focales. Utiliza la extensión glTF KHR_lights_punctual.

Transformación

Y Up

Exporta usando la conversión de glTF, +Y up.

Geometría

Apply Modifiers

Export objects using the evaluated mesh, meaning the resulting mesh after all Modifiers have been calculated.

UVs

Exporta UVs (coordenadas de texturas) con las mallas.

Normales

Exporta las normales de los vértices con las mallas.

Tangents

Exporta las tangentes de los vértices con las mallas.

Vertex Colors

Export Color Attributes with meshes.

Loose Edges

Export loose edges as lines, using the material from the first material slot.

Loose Points

Export loose points as glTF points, using the material from the first material slot.

Materiales

Export full materials, only placeholders (all primitives but without materials), or does not export materials. (In that last case, primitive are merged, lossing material slot information).

Imágenes

Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web applications due to the smaller file size. If None is chosen, materials are exported without textures.

Compression

Comprime mallas usando Google Draco.

Compression Level

Mayor compresión produce menor codificación y decodificación.

Quantization Position

Los valores mayores producen mejores tasas de compresión.

Normal

Los valores mayores producen mejores tasas de compresión.

Texture Coordinates

Los valores mayores producen mejores tasas de compresión.

Color

Los valores mayores producen mejores tasas de compresión.

Generic

Los valores mayores producen mejores tasas de compresión.

Animación

Use Current Frame

Export the scene in the current animation frame. For rigs, when off, rest pose is used as default pose for joints in glTF file. When on, the current frame is used as default pose for joints in glTF file.

Animación

Exporta acciones activas y pistas NLA como animaciones glTF.

Limit to Playback Range

Recorta las animaciones al rango de reproducción seleccionado.

Sampling Rate

Cuán a menudo se evalúan los valores animados (en frames).

Always Sample Animations

Aplica muestreo a todas las animaciones.

Group by NLA Track

Si se exportan animaciones NLA strip.

Optimize Animation Size

Reduce exported file-size by removing duplicate keyframes.

Export Deformation Bones Only

Export deformation bones only.

Shape Keys

Exporta claves de forma (objetivos de transformación)

Shape Key Normals

Exporta las normales de los vértices con las claves de forma (objetivos de transformación).

Shape Key Tangents

Exporta las tangentes de los vértices con las claves de forma (objetivos de transformación).

Skinning

Exporta los datos del skinning (armadura).

Include All Bone Influences

Permite más de 4 influencias de vértices de junturas. Los modelos pueden aparecer incorrectamente en muchos visores.

Contribuir

El importador/exportador está desarrollado a través del repositorio glTF-Blender-IO, donde puedes presentar reportes de errores, emitir solicitudes de características, o contribuir con código.

La discusión y el desarrollo del formato glTF 2.0 mismo tiene lugar en el Khronos Group glTF GitHub repository, y allí los comentarios son bienvenidos.