WORKER
TOCKTEXTURE
← Volver a Recursos Materiales PBR

Cómo configurar Normal Maps para DirectX (Y-) vs OpenGL (Y+)

Tiempo de lectura: 5 min

Uno de los problemas más frecuentes en el flujo de trabajo 3D es abrir un proyecto en un motor diferente al que se usó para crear los materiales y encontrar que la iluminación parece completamente invertida.

01. ¿Qué es un Normal Map y qué contiene?

Un Normal Map (mapa de normales) es una textura RGB especial que almacena vectores de dirección tridimensionales en los canales de color de la imagen.

Los canales R (rojo) y G (verde) codifican las desviaciones horizontales y verticales de la normal, mientras que el canal B (azul) almacena la profundidad de la superficie. Es precisamente la interpretación del canal Verde (Y) donde divergen las dos grandes convenciones de la industria: DirectX y OpenGL.

Visualmente, un Normal Map en cualquiera de los dos estándares luce con un predominio de color azul-violáceo, pero la componente de color verde varía en sentido inverso entre ambas convenciones.


02. DirectX (Y-) vs OpenGL (Y+): La diferencia clave

La divergencia surge de la diferencia en el sistema de coordenadas 3D que utilizan cada API gráfica de bajo nivel:

🔴 Convención DirectX (Y hacia abajo — Y-)

Utilizado por Unreal Engine, Direct3D y la mayoría de pipelines AAA de consolas.

🟢 Convención OpenGL (Y hacia arriba — Y+)

Utilizado por Unity, Godot Engine, Blender (Cycles/EEVEE), y los estándares web como glTF.

El efecto visual del error es inmediatamente reconocible: la iluminación parece venir del lado opuesto. Un tornillo que debería parecer elevado parece encajado; un surco que debería parecer profundo parece prominente.


03. ¿Cómo identificar qué convención usa tu Normal Map?

Puedes detectar la convención observando el canal verde de la imagen con cualquier editor de imagen:

🔍 Inspección del canal verde (Green Channel):

  • Normal Map para OpenGL (Y+): La zona superior de los relieves aparece en el canal verde con valores claros (altos).
  • Normal Map para DirectX (Y-): Las mismas zonas iluminadas desde arriba aparecen con valores oscuros (bajos) en el canal verde.
  • Canal Rojo (X): Este canal es idéntico en ambas convenciones y puede usarse como referencia.

También puedes identificarlo por el software de origen: Substance 3D Painter exporta en DirectX cuando el preset es Unreal Engine, y en OpenGL cuando el preset es Unity, Godot o glTF.


04. Soluciones en cada motor: Configuración interna

🔴 Unreal Engine 5 (DirectX Y-)

Unreal Engine asume por defecto la convención DirectX (Y-). Si importas un Normal Map en convención OpenGL (Y+), puedes invertir el canal verde directamente en el editor: abre la textura importada y activa la casilla "Flip Green Channel" en las propiedades de la textura.

🟢 Unity (URP / HDRP — OpenGL Y+)

Unity utiliza la convención OpenGL (Y+). Al importar un Normal Map generado para Unreal Engine, activar la opción "Create from Grayscale" puede ayudar, pero la solución más precisa es invertir el canal verde del archivo.

🟢 Godot Engine 4 (OpenGL Y+)

Godot utiliza OpenGL (Y+) como convención de normales en sus tres renderizadores (Forward+, Mobile y Compatibility). En el panel de Import, existe una opción "Normal Map" que aplica conversiones automáticas al importar.


05. Corrige la convención al instante con TockTexture Studio

Reabrir Photoshop, GIMP o Blender para invertir el canal verde de decenas de Normal Maps es un proceso tedioso y propenso a errores. La función Y-Flip (DirectX ↔ OpenGL) de TockTexture Studio resuelve esta tarea en un solo clic, directamente en el navegador, sin subir archivos a ningún servidor.

⚡ Flujo de conversión recomendado:

  1. Abre TockTexture Studio y carga tu Normal Map en PNG o WebP.
  2. Activa la opción "Y-Flip (Normal Map)" en el panel de opciones de conversión.
  3. Selecciona el formato de salida (WebP o PNG) y descarga el archivo corregido.
  4. Importa directamente al motor de destino sin modificaciones adicionales.

Comprender la diferencia entre las convenciones DirectX (Y-) y OpenGL (Y+) es un conocimiento fundamental para cualquier artista técnico que trabaje con múltiples motores gráficos. Dominar la corrección del canal verde garantiza que tus materiales PBR se vean exactamente como fueron diseñados en cualquier pipeline de producción.

Buy Me a Coffee at ko-fi.com