Toon shader en Blender usando texturas pintadas en Substance Painter

Racines_ - 18/11/2025 19:32
Hola a todos,

Estoy intentando crear un toon shader en Blender y tengo algunas dudas respecto al flujo de trabajo. Estoy siguiendo este video como referencia: [URL]https://www.youtube.com/watch?v=TpWI2rU8iF0[/URL]. Mi idea es que las texturas principales del personaje sean pintadas a mano en Substance Painter, ya que necesito un acabado más a mano. Lo que no tengo claro es si puedo usar esas texturas de Substance de manera normal y luego combinarlas en Blender para que adopten el estilo toon del shader del video, o si existe algún método específico para preparar las texturas en Substance para que funcionen mejor con un toon shader.

Además, este personaje lo voy a usar para experimentar con texture swapping, especialmente para animar los ojos mediante imágenes dibujadas, siguiendo este otro video: [URL]https://www.youtube.com/watch?v=Rfc5eGHC8Ro&t=113s[/URL]. No sé si este sistema afecta de alguna manera la forma de crear o exportar las texturas, o si debería considerar algún ajuste adicional para que todo funcione correctamente dentro del estilo toon.
Agradecería mucho cualquier orientación sobre cómo integrar correctamente las texturas pintadas en Substance con un shader toon en Blender, y si el uso de texture swapping requiere algún paso extra en este proceso.
3dpoder - 18/11/2025 20:37
Hola. Pinta tus texturas normalmente en Substance (solo Base Color), exportas, y aplicas directamente al toon shader de Blender sin ningún ajuste especial. El toon shader se encargará completamente del aspecto cel shading, y tus texturas solo aportarán el color pintado a mano.

Para los ojos, usa texture swapping con imágenes aparte (creadas en Substance o cualquier otro programa), sin modificar tu flujo de exportación.

Así es más simple de hacer. Supongamos que exportaste desde Substance al menos tu Base Color.

En Blender (Eevee), ve al Shader Editor de tu personaje.

Tendrás algo así:
[CODE]Principled BSDF[/CODE]

Descarta el Principled BSDF si estás usando el shader toon del video

Ese shader suele estar construido con:


Tu nodo principal de entrada suele llamarse o conectarse a algo tipo Base Color.

Añades tu textura de color
Add > Texture > Image Texture
Cargas tu Base Color exportado de Substance.

Conecta:
[CODE]Image Texture (Color) ? Diffuse BSDF (Color)[/CODE]
o si tu shader tiene un nodo específico llamado Color
, Albedo o Base Color, conéctalo ahí.

Asegúrate de que el flujo de tooning ocurre después del Diffuse BSDF

El orden típico del shader del video es:
[CODE]Diffuse BSDF/Shader to RGB/ColorRamp/(resto del shader)[/CODE]

Tu textura entra solo al Diffuse BSDF, no al Shader to RGB ni al ColorRamp.

No conectes Roughness, Normal ni AO (a menos que tu shader los soporte)

Para toon, solo usa Base Color.
Esto te dará el mejor resultado para un estilo pintado a mano + cel shading.

Ojos con texture swapping

Este paso no se mezcla con el shader.

Haz esto:


Los ojos suelen ser planos.
Racines_ - 24/11/2025 09:51
[QUOTE=3dpoder;1036450]Hola. Pinta tus texturas normalmente en Substance (solo Base Color), exportas, y aplicas directamente al toon shader de Blender sin ningún ajuste especial. El toon shader se encargará completamente del aspecto cel shading, y tus texturas solo aportarán el color pintado a mano.

Para los ojos, usa texture swapping con imágenes aparte (creadas en Substance o cualquier otro programa), sin modificar tu flujo de exportación.

Así es más simple de hacer. Supongamos que exportaste desde Substance al menos tu Base Color.

En Blender (Eevee), ve al Shader Editor de tu personaje.

Tendrás algo así:
[CODE]Principled BSDF[/CODE]

Descarta el Principled BSDF si estás usando el shader toon del video

Ese shader suele estar construido con:


Tu nodo principal de entrada suele llamarse o conectarse a algo tipo Base Color.

Añades tu textura de color
Add > Texture > Image Texture
Cargas tu Base Color exportado de Substance.

Conecta:
[CODE]Image Texture (Color) ? Diffuse BSDF (Color)[/CODE]
o si tu shader tiene un nodo específico llamado Color
, Albedo o Base Color, conéctalo ahí.

Asegúrate de que el flujo de tooning ocurre después del Diffuse BSDF

El orden típico del shader del video es:
[CODE]Diffuse BSDF/Shader to RGB/ColorRamp/(resto del shader)[/CODE]

Tu textura entra solo al Diffuse BSDF, no al Shader to RGB ni al ColorRamp.

No conectes Roughness, Normal ni AO (a menos que tu shader los soporte)

Para toon, solo usa Base Color.
Esto te dará el mejor resultado para un estilo pintado a mano + cel shading.

Ojos con texture swapping

Este paso no se mezcla con el shader.

Haz esto:


Los ojos suelen ser planos.[/QUOTE]



Muchas gracias por la explicación y por las ideas, estuve haciendo varias pruebas y el método que me recomendaron funcionó muy bien. Logré obtener el estilo que estaba buscando mezclando mis texturas pintadas con el toon shader, así que de verdad lo agradezco.

Ahora me surgió un problema puntual con las sombras. En el ColorRamp tengo tres divisiones (blanco, gris y negro) para generar dos niveles de sombra, pero las zonas gris y negra casi no se distinguen. Me gustaría conseguir sombras más marcadas y fuertes, pero no he logrado ajustarlas de manera satisfactoria. Probé varios tutoriales en YouTube, pero ninguno me ha dado el resultado que necesito.

[ATTACH=CONFIG]251015[/ATTACH] [ATTACH=CONFIG]251016[/ATTACH]

Voy a adjuntar una captura de mis nodos y del personaje para que se entienda mejor. ¿Hay alguna forma de aumentar el contraste o reforzar esos cortes de sombra sin perder el estilo toon que ya logré? ¿O debería plantear la estructura del shader de otra manera para conseguir sombras más definidas?
De nuevo, gracias por la ayuda. Sólo me falta pulir este detalle para dejar el shader como quiero.
3dpoder - 24/11/2025 10:09
Hola, aquí la solución está en jugar un poco con los valores, aumenta un poco el contraste.

Intenta este orden de trabajo en los nodos en el Shader Editor.

Diffuse BSDF.
Shader to RGB.
Bright/Contrast (Contrast = 2 o 3).
ColorRamp (Constant). Asegúrate de tener marcado el Constant.
Resto del shader.

Ya comentas como te ha ido.

Un saludo.
Neo_one - 24/11/2025 10:47
Yo cree uno parecido, pero le añadí brillo y algo de ruido.
[ATTACH=CONFIG]251021[/ATTACH]
Racines_ - 24/11/2025 22:02
[QUOTE=3dpoder;1037069]Hola, aquí la solución está en jugar un poco con los valores, aumenta un poco el contraste.

Intenta este orden de trabajo en los nodos en el Shader Editor.

Diffuse BSDF.
Shader to RGB.
Bright/Contrast (Contrast = 2 o 3).
ColorRamp (Constant). Asegúrate de tener marcado el Constant.
Resto del shader.

Ya comentas como te ha ido.

Un saludo.[/QUOTE]


Muchas gracias por la ayuda, de verdad me ayudo con lo que necesitaba para seguir avanzando. Aprecio mucho el tiempo y la explicación.

Saludos
Racines_ - 24/11/2025 22:04
[QUOTE=Neo_one;1037080]Yo cree uno parecido, pero le añadí brillo y algo de ruido.
[ATTACH=CONFIG]251021[/ATTACH][/QUOTE]

Me está funcionando bastante bien y lo probé directamente en mi modelo. El único problema que sigo teniendo es cómo combinar este shader con mis texturas de imagen. En el ejemplo se ve perfecto, pero no termino de entender cómo integrar mis propios mapas dentro de la misma estructura de nodos. ¿Cómo podría unir este mismo set-up con mis texturas sin perder el efecto del toon shader?
3dpoder - 25/11/2025 00:25
[QUOTE=Racines_;1037199]Me está funcionando bastante bien y lo probé directamente en mi modelo. El único problema que sigo teniendo es cómo combinar este shader con mis texturas de imagen. En el ejemplo se ve perfecto, pero no termino de entender cómo integrar mis propios mapas dentro de la misma estructura de nodos. ¿Cómo podría unir este mismo set-up con mis texturas sin perder el efecto del toon shader?[/QUOTE]

Para integrar tus texturas, necesitas conectar tu mapa de Base Color de Substance en el punto correcto de la cadena de nodos.

Orden Correcto de los Nodos:
Image Texture (tu Base Color) / Diffuse BSDF / Shader to RGB / Bright/Contrast / ColorRamp / Mix Shader (con el efecto de brillo) / Material Output

Pasos Detallados:

Añade tu Textura: En el Shader Editor, añade un nodo Image Texture y carga tu archivo de Base Color exportado desde Substance Painter.

Conecta al Diffuse BSDF: Conecta el enchufe Color de tu Image Texture al enchufe Color del nodo Diffuse BSDF.

Este es el paso clave. Al hacer esto, estás pintando la superficie del material con tus texturas artísticas antes de que la luz sea convertida en un estilo toon por el Shader to RGB.

Mantén el Flujo Toon: Desde el Diffuse BSDF, el flujo continúa exactamente como en la imagen de Neo_one:

Diffuse BSDF / Shader to RGB / Bright/Contrast / ColorRamp (en modo Constant) / Mix Shader para combinar con el brillo.

En definitiva, tu nodo de textura debe ser la ENTRADA de color para el Diffuse BSDF. El resto de la cadena (Shader to RGB, ColorRamp, etc.) se encargará de aplicar el efecto cel-shading o toon sobre tus colores texturizados.

¿Qué pasa con otros mapas (Normal, Roughness)?
Para un estilo toon puro como el que buscas:

Solo usa Base Color: Es el enfoque más limpio y efectivo. Los mapas de Normal y Roughness están diseñados para simular detalles de superficie de manera realista, lo que puede "ensuciar" o suavizar el look toon que quieres.

Descarta los otros mapas: No conectes los mapas de Normal, Roughness o Metallic. El carácter y los detalles de la superficie ya están pintados a mano en tu textura de Base Color. El shader toon se encargará de la iluminación plana y los cortes definidos.

Ya comentas como te ha ido, un saludo.
Neo_one - 25/11/2025 13:05
[QUOTE=Racines_;1037199]Me está funcionando bastante bien y lo probé directamente en mi modelo. El único problema que sigo teniendo es cómo combinar este shader con mis texturas de imagen. En el ejemplo se ve perfecto, pero no termino de entender cómo integrar mis propios mapas dentro de la misma estructura de nodos. ¿Cómo podría unir este mismo set-up con mis texturas sin perder el efecto del toon shader?[/QUOTE]

Sin problemas. Mira esto donde añadí un par de texturas a un pantalón.

[ATTACH=CONFIG]251084[/ATTACH]

El resultado es este.
[ATTACH=CONFIG]251085[/ATTACH]