Blender: preparar y exportar modelos a glTF con materiales PBR

Última actualización: 25/05/2026
Autor: Isaac
  • glTF usa un flujo PBR metal/rough basado en Principled BSDF de Blender y se amplía con extensiones para materiales avanzados.
  • La correcta codificación de texturas (color, metallic-roughness, normales, AO, transmisión, volumen) y su espacio de color es clave.
  • GLB binario empaqueta geometría, materiales y texturas en un único archivo, evitando modelos grises sin texturas en otras plataformas.
  • Funciones extra como variantes, clearcoat, anisotropía o volumen se gestionan mediante nodos específicos y extensiones glTF dedicadas.

Blender exportar modelos GLTF materiales PBR

Si trabajas con Blender y necesitas llevar tus modelos 3D a glTF/GLB con materiales PBR, habrás notado que no siempre es tan “exportar y listo” como nos gustaría. Que si las texturas no aparecen, que si el metal se ve raro, que si la transparencia no funciona igual que en Blender… todo esto es bastante común cuando uno se mete en el ecosistema glTF.

En este artículo vamos a ver, con bastante detalle, cómo preparar materiales en Blender para que se exporten correctamente a glTF con flujo PBR metal/rough, qué extensiones usa el formato, cómo tratar mapas de normales, oclusión, transmisión, volumen, variantes de materiales, alfa, UVs, factores, UDIM, y también algunos casos prácticos típicos (como enviar monedas a una plataforma web o importar en motores como Unreal Engine 5).

El sistema PBR metal/rough de glTF y su relación con Blender

El formato glTF define un sistema de materiales basado en PBR de tipo metal/roughness como estándar central. Este sistema trabaja con varios canales de información (color base, metálico, rugosidad, normales, emisivo, oclusión, etc.) y además se puede ampliar mediante extensiones oficiales de glTF para cubrir propiedades más avanzadas como barniz, especularidad, transmisión, volumen o variantes de materiales.

En Blender, el exportador de glTF se apoya principalmente en un shader Principled BSDF como núcleo del material. A partir de los nodos que reconoce en el árbol de nodos, el complemento construye un material compatible con el estándar glTF. Esto significa que no exporta cualquier configuración extraña de nodos, sino los patrones que sabe interpretar y que están pensados para encajar con el modelo PBR metal/rough de glTF.

El exportador soporta de serie materiales PBR metal/rough (núcleo glTF) y materiales sin iluminación mediante la extensión KHR_materials_unlit. En este último caso, los materiales son “shadeless”, es decir, no reaccionan a la iluminación y muestran el color o textura de forma plana, muy útil para iconos, UI o estilo toon sin sombreado.

Además de las propiedades básicas, glTF puede emplear una serie de extensiones oficiales para ampliar las capacidades de los materiales (barniz, especularidad avanzada, transmisión, volumen, IOR, variantes, etc.). La lista completa de extensiones se encuentra en la documentación oficial de glTF, pero Blender ya soporta muchas de las más utilizadas en producción.

Color base (Base Color) en materiales glTF

El color base del material glTF se obtiene a partir de la entrada Base Color del nodo Principled BSDF. El exportador comprueba primero si existe una textura conectada; si la hay, esa imagen se usa como textura de color base en el material glTF. Si no hay textura conectada, se toma el valor por defecto del propio socket (el color que ves en el inspector del nodo) como color base constante.

Blender también permite que el color base proceda de otros nodos: por ejemplo, un nodo RGB, un nodo Ambient Occlusion o cualquier otro nodo de color conectado al socket Base Color del Principled BSDF. En el caso del nodo de oclusión ambiental, glTF no usa directamente su salida AO, pero el color resultante sí puede aprovecharse como color base siempre que esté conectado correctamente.

En resumen, mientras el exportador encuentre una ruta clara hasta la entrada Base Color del Principled, ya sea mediante una textura de imagen o un color sencillo, podrá traducir ese dato al material glTF sin problemas.

Metálico y rugosidad en el flujo PBR glTF

Los valores de Metallic y Roughness en glTF se leen directamente del nodo Principled BSDF de Blender. Si las entradas Metallic y Roughness están sin conexiones, el Principled muestra unos deslizadores con valores entre 0.0 y 1.0; esos valores numéricos son los que se copiarán en el material glTF al exportar.

Cuando se usan texturas, glTF espera un mapa combinado metallic-roughness donde el canal verde (G) almacena la rugosidad y el canal azul (B) almacena el valor metálico. Si tus texturas en Blender no están organizadas según esta convención, el exportador intentará adaptarlas durante el proceso, aunque esto puede alargar el tiempo de exportación porque debe re-mapear canales.

La práctica recomendada en Blender es utilizar un nodo Separate RGB para descomponer la textura y conectar el canal G al socket Roughness y el canal B al socket Metallic del Principled BSDF. El exportador reconoce este patrón como el estándar de glTF y en ese caso puede prácticamente copiar la textura original al archivo glTF sin necesidad de hacer transformaciones adicionales.

Es importante que las texturas usadas para metálico y rugosidad estén en “Espacio de color: Datos”, no en sRGB, para que los valores físicos se conserven sin corrección de color indebida. Esto se aplica también a otras texturas de datos como normales, oclusión o thickness.

Oclusión ambiental (AO) en glTF

glTF puede almacenar un mapa de oclusión ambiental precalculado, útil para dar más profundidad y sombreado a tiempo real sin cargar tanto la GPU. A día de hoy no existe en Blender una configuración estándar de nodos que reproduzca exactamente el uso del AO tal y como glTF lo espera, pero el exportador ofrece un mecanismo específico para ello.

Si en tu árbol de nodos el complemento encuentra un grupo de nodos personalizado llamado “glTF Material Output” que incluya una entrada de nombre Occlusion, buscará una textura de imagen conectada a esa entrada y la usará como mapa de oclusión en el material glTF. No es necesario que ese mapa afecte visualmente al material en Blender, ya que el uso real del AO se verá después en el visor o motor que cargue el glTF.

  Averigua cómo saber cuánto tiempo he sido amigo de alguien en Facebook. Comprueba la fecha de la amistad y el historial.

En glTF, la oclusión se almacena en el canal rojo (R) de la textura, y, de forma opcional, puede compartir la misma imagen con los canales de rugosidad y metálico. Es decir, puedes tener un único mapa donde el canal R es AO, el G es Roughness y el B es Metallic, algo bastante habitual para optimizar memoria en entornos de tiempo real.

Mapas de normales en materiales glTF

Para que un mapa de normales se exporte correctamente a glTF, la configuración en Blender debe seguir un esquema claro: la salida Color de un nodo Image Texture debe conectarse a la entrada Color de un nodo Normal Map, y la salida Normal de este último al socket Normal del Principled BSDF.

La textura de normales debe tener el Espacio de color configurado como Datos, ya que no se trata de una imagen de color al uso, sino de información vectorial empaquetada en RGB. El nodo Normal Map debe permanecer en modo Espacio tangencial (Tangent Space), que es el único tipo de normal map que glTF soporta actualmente.

La intensidad del mapa de normales se ajusta en el propio nodo Normal Map. El exportador no envía el nodo en sí al archivo glTF, pero sí usa ese nodo para encontrar la textura de normales correcta y copia el parámetro de intensidad al material glTF como strength del normal map.

Canal emisivo y materiales autoiluminados

El canal emisivo de glTF se usa para materiales que emiten luz de forma independiente a la iluminación de la escena. En Blender, puedes conectar una Image Texture directamente al socket Emission del Principled BSDF para incluir un mapa emisivo. Otra opción es usar un shader Emission independiente y combinarlo con el Principled mediante un nodo Add Shader.

Si el material es puramente emisivo (por ejemplo, un letrero luminoso o un panel de neón), es buena idea poner el Base Color a negro y la Roughness a 1.0 para minimizar la influencia de otros canales PBR que no son relevantes en ese caso. Así te aseguras de que lo que domina de verdad es el canal emissive.

glTF permite que el factor emisivo tenga valores mayores que 1.0. Cuando esto ocurre, el exportador utiliza la extensión KHR_materials_emissive_strength para representar esa intensidad extra de emisión, de forma que el resultado en el visor o motor sea coherente con la configuración de Blender.

Barniz (Clearcoat) y brillo tangencial

El efecto de barniz o capa transparente brillante sobre un material se representa en glTF mediante la extensión KHR_materials_clearcoat. En Blender, si el socket Clearcoat del Principled BSDF tiene un valor por defecto distinto de cero o una textura conectada, el exportador incluirá automáticamente esta extensión en el material glTF.

La extensión de barniz también puede aprovechar una textura o valor en el socket Clearcoat Roughness. En glTF, cuando se usan texturas, el valor de clearcoat se escribe en el canal rojo (R), mientras que la rugosidad del barniz se codifica en el canal verde (G). Si conectas imágenes en escala de grises, el exportador remapea esos datos a los canales correctos.

El socket Clearcoat Normal acepta el mismo tipo de entrada que el Normal principal del Principled: mapa de normales en espacio tangente con Y positiva hacia arriba y una intensidad ajustable. Puedes reutilizar el mismo mapa de normales base o definir uno específico para la capa de barniz. Si lo dejas desconectado, el barniz se aplicará de forma suave y homogénea sobre toda la superficie.

Todos los nodos de Image Texture que se usen para barniz (clearcoat, clearcoat roughness y clearcoat normal) deben tener también el Espacio de color en Datos, igual que el resto de mapas de información física.

Por otro lado, el “brillo tangencial” se refiere a una textura especial de rugosidad para efectos como hilillos, fibra o direccionalidad. Cuando se exporta este tipo de mapa en glTF, los valores deben ir en el canal alfa (A). Así que si utilizas una textura específica para este efecto, asegúrate de que el mapa se empaqueta correctamente en el canal alfa de la imagen final que se envía al exportador.

Especularidad e anisotropía

La parte de especularidad avanzada en glTF se gestiona mediante la extensión KHR_materials_specular. En Blender, cuando el valor Specular IOR Level o Specular Tint del Principled BSDF se alejan de sus valores por defecto, o si conectas una textura a estos sockets, el exportador incluirá esta extensión para representar correctamente el comportamiento especular en el archivo glTF.

La anisotropía controla cómo se alargan los brillos especulares en una dirección concreta, típico en materiales como cepillado metálico, discos, peines, etc. En glTF, las texturas y datos de anisotropía no son exactamente iguales que en Blender, así que el exportador debe hacer una conversión al vuelo tanto al exportar como al importar.

Al importar un glTF con anisotropía, Blender crea nodos adicionales para hacer la conversión y representar el comportamiento lo más parecido posible. Y al exportar desde Blender, el complemento detecta esos mismos nodos para saber cómo escribir los datos en el formato glTF.

Durante la exportación, es posible conectar texturas en escala de grises a los sockets Anisotropy y Anisotropy Rotation. El exportador se encarga de transformarlas en texturas compatibles con glTF. Eso sí, el socket de Tangent del Principled debe estar enlazado a un nodo Tangent que especifique un UV Map concreto, y ese UV Map debe coincidir con el que usa el normal map, porque glTF también se basa en las tangentes derivadas del mapa de normales para aplicar la anisotropía.

  Methods to Connect Recordsdata and Images to Emails on iPhone or iPad

Transmisión, IOR y volumen en glTF

La transmisión en glTF (KHR_materials_transmission) representa materiales sólidos que dejan pasar la luz, como el vidrio, el agua o ciertos plásticos transparentes, pero manteniendo reflejos especulares fuertes. No es lo mismo que la transparencia basada en alfa blending, que representa materiales parcialmente ausentes o recortados.

En Blender, cuando el socket “Transmission” del Principled BSDF tiene un valor distinto de cero o una textura conectada, el exportador añade la extensión KHR_materials_transmission al material glTF. Si usas una textura para la transmisión, los valores deben codificarse en el canal rojo (R) de la imagen, y de nuevo la textura debe estar en Espacio de color: Datos.

La diferencia conceptual es importante: el alpha blending en glTF describe geometría parcial (como gasas médicas, telas perforadas o superficies con agujeros), mientras que la transmisión describe materiales continuos y densos que permiten que la luz pase a través del volumen.

El índice de refracción (IOR) se gestiona mediante la extensión KHR_materials_ior. Al importar un glTF a Blender, si esta extensión no está presente, el valor de IOR del Principled se fija a 1.5, que es el valor por defecto en glTF. Si la extensión sí está incluida, Blender usa ese valor para el IOR del Principled BSDF.

Al exportar desde Blender, el IOR sólo se incluye cuando se usa alguna de las extensiones que lo requieren (como transmisión o volumen). Además, un IOR de 1.5 no se escribe en el archivo, porque se considera el valor estándar del formato y no es necesario repetirlo.

El volumen en glTF se representa con la extensión KHR_materials_volume. En Blender se puede exportar volumen usando un nodo Volume Absorption conectado al socket Volume del Output. Para que se exporte el volumen, el material debe tener también algo de transmisión en el Principled (es decir, Transmission mayor que cero).

El color del nodo Volume Absorption se utiliza como attenuation color en glTF (sin posibilidad de textura, solo color uniforme), mientras que la densidad se traduce como el inverso de la attenuation distance. La thickness (grosor) se puede enchufar en el socket Thickness de un grupo de nodos personalizado llamado “glTF Material Output”; si utilizas una textura de thickness, el valor debe ir en el canal verde (G) de la imagen, siempre en espacio de datos.

Variantes de materiales glTF en Blender

glTF incluye la extensión KHR_materials_variants para gestionar variantes de materiales en un mismo modelo, por ejemplo, diferentes acabados de color o versiones “limpia” y “sucia” de un objeto. Blender integra esta funcionalidad y la expone en dos lugares distintos.

Por un lado, tienes una pestaña de glTF Variants en la vista 3D, pensada para trabajar de forma rápida y visual. Por otro, existe un panel más detallado en las propiedades de Material del Mesh, ideal para comprobaciones avanzadas y ajustes finos en cada slot/primitiva.

El concepto clave es que cada Material Slot de Blender se corresponde con una primitive de glTF. Una variante de glTF básicamente indica qué material usar en cada primitive para esa variante concreta. Cuando importas un glTF con variantes, Blender puede mostrar la lista completa de variantes y te permite conmutar entre ellas, o bien volver a los materiales por defecto utilizando la opción de Reset to default.

Para crear nuevas variantes en Blender, puedes añadir una entrada en la lista de variantes, renombrarla a tu gusto y, tras cambiar los materiales de los slots correspondientes, usar la opción “Assign to Variant” para vincular los materiales actuales a esa variante activa. También puedes definir qué materiales se consideran “originales” con la opción Assign as Original; esos serán los materiales que se verán en visores que no soporten la extensión de variantes.

En el panel avanzado de glTF Material Variants dentro de las propiedades de Mesh, puedes revisar para cada slot qué variantes usan un material dado, y también hacer asignaciones manuales, aunque la recomendación general es gestionar la configuración desde la pestaña de Variants en la vista 3D para tener una visión más global.

Caras dobles, descarte de caras traseras y modos de alfa

En glTF, el comportamiento de las caras traseras (backfaces) se controla de manera similar a otros motores de tiempo real. En Blender, para materiales donde sólo se verán las caras frontales, conviene activar la opción Backface Culling en el panel Settings de los materiales EEVEE. Si estás trabajando con Cycles o Workbench, puedes cambiar temporalmente a EEVEE para marcar esta casilla y luego volver al motor que prefieras.

Deja la opción Backface Culling sin marcar en aquellos materiales que necesiten renderizar ambas caras (doble cara), como hojas muy finas, papel, telas o geometría sin grosor real. El exportador de glTF tendrá en cuenta este ajuste para determinar si descarta o no las caras traseras cuando el modelo se muestre en un visor compatible.

En cuanto al alfa, glTF define tres modos principales: opaque, mask y blend. El exportador detecta automáticamente el modo adecuado en función de los nodos conectados al socket Alpha del Principled BSDF.

En modo opaco, la alpha del material es siempre 1, sin transparencia. En modo mask, la alpha es solo 0 o 1, produciendo una transparencia de recorte (cutout) con bordes duros, muy útil para hojas de plantas o tejidos perforados. Para activar este modo en Blender, suele utilizarse un nodo Math configurado en “Greater Than” o “Round” para forzar que los valores de alpha se redondeen a 0 o 1.

Los materiales que no encajan en opaco ni en mask pasan al modo blend, que permite transparencias parciales con valores intermedios de alpha. Esto sirve para vidrios coloreados, plásticos translúcidos o capas de película, pero añade complejidad al render en tiempo real y puede generar artefactos si se abusa de él. Una buena práctica es separar en geometría distinta las partes que necesitan transparencia blend del resto, y evitar superponer muchas capas transparentes.

  Arreglo: Error de la pila de control de Windows 10

Mapeo UV, transformaciones y factores de textura

El control de qué mapa UV usa cada textura y cómo se transforma se realiza en Blender con nodos UV Map y Mapping. Estos nodos pueden conectarse a las Image Textures y, al exportar a glTF, el complemento utiliza la extensión KHR_texture_transform para codificar las transformaciones.

En el nodo Mapping, el tipo de mapping recomendado para glTF es Point, aunque Texture y Vector también son soportados. Los parámetros de Posición (X,Y), Rotación (solo Z) y Escala (X,Y) se exportan como desplazamiento, rotación y escala de la textura en glTF. Si eliges el tipo Texture, es importante que los valores de escala X e Y sean iguales para mantener una escala uniforme.

Cualquier nodo de Image Texture puede multiplicarse por un color o por un valor escalar antes de llegar al Principled. En glTF estos multiplicadores se denominan “factors” (por ejemplo, baseColorFactor, metallicFactor, roughnessFactor). Para generar factores escalares, es habitual usar un nodo Math en modo Multiply, usando el segundo valor como factor; para factores de color, se utiliza un nodo Mix en modo Color/Multiply, con Factor a 1 y el Color2 como factor multiplicador.

Aunque estos factores no son extremadamente comunes en materiales sencillos, glTF los soporta y Blender puede exportarlos correctamente siempre que el patrón de nodos sea reconocible y no demasiado enrevesado.

UDIM y sus limitaciones en glTF

El sistema UDIM permite repartir una textura en múltiples tiles dentro de un único conjunto de imágenes, algo muy habitual en producción para personajes de alta resolución o modelos muy detallados. Blender soporta UDIM de forma nativa, pero el formato glTF no tiene soporte directo para UDIM.

Cuando exportas un modelo con UDIM desde Blender a glTF, el complemento divide automáticamente la imagen en varias texturas individuales, una por cada tile UDIM. Después actualiza el árbol de nodos del material para que utilice estas nuevas imágenes “partidas” en lugar del conjunto UDIM original.

La única condición es que todas las texturas UDIM tengan que usar el mismo UV Map a la hora de exportar. Si se mezclan varios UV Maps para diferentes tiles, el exportador no será capaz de reorganizar las texturas de manera coherente para el formato glTF.

Problemas típicos: modelos grises sin texturas y uso de GLB binario

Uno de los problemas más frecuentes al trabajar con glTF es que, al subir el modelo a una plataforma online o a un motor de juego, los objetos aparecen totalmente grises, sin texturas. Esto suele deberse a que se ha exportado solo el archivo .gltf sin empaquetar las imágenes, o a que la plataforma no encuentra las rutas relativas de las texturas.

La forma más cómoda de evitar este lío es utilizar el formato GLB, que es la versión binaria de glTF. En GLB, la malla, los materiales y las texturas se empaquetan en un solo archivo, algo parecido a un FBX con Embedded Textures. De este modo, cuando subes un único .glb a una plataforma o lo arrastras a un motor como Unreal Engine 5, todo el material PBR viaja junto, sin necesidad de carpetas adicionales, y puedes consultar exportar modelos 3D optimizados para impresión y web.

En Blender, el exportador glTF suele aparecer por defecto en File > Export > glTF 2.0. Si no lo ves, puedes activarlo desde Edit > Preferences > Add-ons, buscando “glTF”. En la ventana de exportación, basta con seleccionar el formato GLB y en la mayoría de casos puedes dejar la configuración por defecto, que ya funciona bastante bien para flujos PBR estándar.

Para motores como Unreal Engine 5, se ha comprobado que el formato GLB es muy robusto a la hora de trasladar materiales con PBR Textures y también materiales basados en Vertex Color. En Unreal, bastaría con arrastrar el GLB al Content Browser para que genere los materiales y texturas automáticamente, siempre que la configuración de importación esté ajustada (por ejemplo, usando Replace en Vertex Color Import Option cuando te interesan los colores por vértice).

En casos donde tus objetos solo usan Vertex Colors sin materiales ni texturas en Blender, al importarlos en Unreal aparecerán grises, pero es normal: basta con crear un material que use un nodo Vertex Color conectado a Base Color y asignarlo a todos esos objetos para que se dibujen con los colores de vértice exportados desde Blender.

Al final, si necesitas enviar, por ejemplo, monedas 3D a una plataforma web y se ven grises, la solución típica suele pasar por: verificar que el material usa un Principled BSDF con texturas correctamente conectadas, que las imágenes no son procedurales sin hornear, que el espacio de color de metálico, rugosidad y normales es Datos, y sobre todo que estás exportando en GLB para incluir las texturas dentro del propio archivo.

Con todos estos puntos claros, preparar y exportar modelos desde Blender a glTF con materiales PBR deja de ser una lotería y pasa a ser un flujo de trabajo bastante fiable: materiales basados en Principled BSDF, texturas organizadas por canales según el estándar glTF, extensiones activadas cuando toca (transmisión, volumen, variantes, barniz, especularidad…), y uso de GLB binario para asegurarte de que allá donde subas tu archivo, la geometría y las texturas viajan juntas y se muestran como esperas.

Blender: exportar modelos 3D optimizados para impresión y web
Related article:
Blender: exportar modelos 3D optimizados para impresión y web