¡Hola a todos!

Este es el primero de dos tutoriales, realizados con referencia a la versión 2019 de Substance Painter, sobre la exportación de texturas desde este programa a varios destinos: desde otro software 3D (como Unity, Unreal, V-Ray y otros), a conjuntos de Texturas genéricas para el paradigma PBR (Physically Based Rendering).

En los tutoriales que he publicado hasta ahora en la Playlist de Youtube "Videotutoriales Substance Painter - Todos", de hecho, he mostrado cómo utilizar Materiales, máscaras, pinceles y otras herramientas, pero no cómo exportar los resultados obtenidos en el formulario. de imágenes de Texturas mapeadas UV para usar, en plantillas, en otro software.

Esta operación puede parecer simple (en teoría, basta con hacer clic en Exportar Texturas en el menú Archivo y continuar), pero en realidad hay un par de cosas a tener en cuenta, especialmente para evitar errores en la fase Exportar (en la ventana Log de Sustancia) o, peor aún, en las Texturas generadas para los distintos programas, que acabarían mostrando materiales distintos a los creados en Sustancia.

A diferencia de la mayoría de mis tutoriales de Substance Painter, los Activos (modelos 3D y otros activos) utilizados en este tutorial NO están disponibles; sin embargo, puede seguir el tutorial y aprender sin tener que replicar operaciones con estos objetos en particular.

Ok, hicimos todas estas premisas, ¡comencemos!

EL PROYECTO QUE UTILIZAREMOS EN ESTE TUTORIAL

Creé un nuevo proyecto de Substance con la plantilla “PBR - Metallic Roughness (Allegorithmic)”, la misma que se usó en los videos tutoriales publicados anteriormente en la Playlist de Youtube; Después de importar un modelo 3D, equipé este modelo con un par de materiales predeterminados de Sustancia, que luego, con la plantilla elegida, presentan los siguientes canales de información:

  • Base Color
  • Height
  • Roughness
  • Metallic
  • Normal

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 01

EXPORTAMOS CON EL PRESET PARA UNITY 5 (ESTÁNDAR METÁLICO)

Ahora suponga que queremos exportar los conjuntos de texturas (tres, en mi caso: uno para cada conjunto de texturas en la lista de conjuntos de texturas), por ejemplo para Unity 2019.

Primero, abramos el menú Archivo y elijamos el elemento Exportar texturas.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 02

En la ventana "Exportar documento - Exportar" podemos configurar algunos parámetros; entre estos, destacamos en particular:

  • haciendo clic en el botón en la parte superior, la ruta en el disco donde almacenar las imágenes de Texturas a crear;
  • junto a este botón, el formato de archivo (por defecto, debería ser PNG) y la profundidad de bits (por defecto, 8 bits por canal);
  • en el menú Config, el ajuste preestablecido de exportación; en nuestro caso, elegimos Unity 5 - Standard Metallic;
  • la resolución de Texturas; Como se anticipó en un tutorial anterior de la Playlist, es posible trabajar con una resolución reducida y luego configurar una resolución mayor, para que las Texturas se generen en la exportación, aquí.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 03

En teoría, por lo tanto, todo debería estar listo para la exportación, pero al hacer clic en Exportar nos aparece el mensaje de error "Exportación finalizada con algunos errores (ver Registros)" ...

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 04

ERRORES DE EXPORTACIÓN: FALTAN CANALES DE INFORMACIÓN

Así que echemos un vistazo a la pestaña Registros, que se puede activar desde Ventana - Ver - Registro, si no está disponible.

En esta hoja, leemos que en el Conjunto de tres Texturas faltan dos canales de información: OPACIDAD y EMISIÓN.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 05

Para comprender el motivo de este error, abrimos la ventana Exportar texturas nuevamente, desde el menú Archivo, pero esta vez vamos a la pestaña CONFIGURACIÓN, en la ventana "Exportar documento", luego seleccionamos el ajuste preestablecido Unity 5 - Estándar metálico para examinar eso.

 

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 06

Como podemos ver, el ajuste preestablecido de exportación para Unity 5 con flujo de trabajo metálico permite la creación de imágenes de 4 texturas:

  • una imagen tipo RGB + A (donde A significa Alfa, el canal de opacidad o transparencia), llamada "Transparencia Albedo", que se pasará al canal Unity Albedo y que tendrá el Color Base en los tres canales RGB y la Opacidad mapa en el canal Alfa;
  • una imagen tipo RGB + A, que en este caso almacenará la información Metálica en RGB y, en el canal de transparencia Alfa, la información derivada del Mapa Convertido - Brillo;
  • una imagen de tipo RGB, denominada Normal, creada no a partir de Input Map - Normal, sino a partir de Converted Map - Normal OpenGL; esta distinción es importante porque el mapa así generado no solo traerá la información definida en el canal Normal, sino también las definidas en el canal Altura (¿recuerdas, por ejemplo, mi tutorial sobre el descosido del cinturón?); de esta manera, Normal y Height se fusionarán en un solo mapa Normal que puede ser utilizado por Unity 5;
  • finalmente, una imagen RGB, denominada Emisión, generada a partir de los Mapas de Entrada - Canal Emisivo, útil para materiales emisores de luz (bombillas, llamas, luces LED, neón, etc.).

ELECCIÓN DEL FORMATO DE ARCHIVO CORRECTO, SEGÚN LOS CANALES

La existencia de imágenes RGB + A, por tanto con el canal de transparencia, en este preset, también nos hace entender otra cosa: en la pestaña Exportar tendremos que elegir un formato de archivo capaz de encapsular estos 4 canales.

El elemento seleccionado por defecto por Sustancia, que es PNG de 8 bits, está bien, porque el formato PNG ya proporciona los 4 canales RGBA, mientras que un formato de archivo como JPG o BMP no sería bueno, porque esos formatos solo proporcionan los tres Canales RGB, sin la información Alpha, por lo que, en el caso del Preset Unity 5 Metallic, faltarían tanto la transparencia (Opacidad) como la Suavidad del material (Brillo).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 07

AÑADIR CANALES DE INFORMACIÓN PARA CONJUNTOS DE TEXTURA

Ok, dijimos que también necesitamos la información de Opacidad y Emisiva; sí, pero ¿cómo agregar estos canales de información a nuestros Materiales?

La respuesta está en la pestaña Configuración de Conjunto de Textura: aquí encontramos la lista de canales de información presentes para un material y, junto a cada canal, también un detalle técnico: el color o espacio de información a asociar a cada canal; por ejemplo, para Color Base tenemos, por defecto, sRGB8, es decir, una imagen en color en espacio de color sRGB con 8 bits de información por canal, mientras que para los canales que se pueden expresar en escala de grises (como Rugosidad y Metálico) tenemos un número de 8 bits en espacio lineal (la letra L), mientras que para Altura tenemos una imagen en espacio lineal a 16 bits en punto flotante (16F) y para Mapas Normales tenemos una imagen en color (RGB) con 16 bits de punto flotante precisión (16F).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 08

Tenga en cuenta que se proporcionan 16 bits de información para Altura y Normal, pero tenga en cuenta que en la fase de exportación, con la configuración predeterminada de la pestaña Exportar documento (donde, como hemos visto, el valor establecido es de 8 bits), esta información todavía se comprimirá para que quepa en 8 bits.

Para agregar los canales de opacidad y emisión al conjunto de texturas seleccionado actualmente, haga clic en el símbolo + junto a Canales y elija estos canales de la lista que aparecerá; Substance Painter establecerá automáticamente el tipo de datos que se utilizarán para estos dos canales (para el registro, este es un número de 8 bits en el espacio lineal, L8, para Opacity, que luego se expresa con una imagen en escala de grises, mientras que para Emissive tenemos una imagen en color, en el espacio de color sRGB8, porque la emisión de luz también se puede colorear: por lo tanto no es la simple intensidad de la emisión, que podríamos haber expresado con L8, generando una imagen escalada de grises, pero tanto en color como en intensidad).

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 09

Pero tenga cuidado: hemos agregado estos dos canales de información solo para el conjunto de texturas actual; para evitar errores, debemos repetir la operación para los otros Conjuntos de Texturas del proyecto también ...

… O, la próxima vez, cree el proyecto con una Plantilla adecuada para nuestros propósitos; por ejemplo, en lo que respecta a Unity 5, Substance Painter 2019 proporciona la plantilla "Unity 5 (Allegorithmic)", al crear un nuevo proyecto, para encontrar estas y otras configuraciones ya optimizadas para exportar a Unity 5. En el siguiente tutorial, en el cual veremos cómo crear un Preset personalizado, también veremos cómo crear nuestra propia Plantilla.

CONSULTE LA INFORMACIÓN DE TODOS LOS CANALES; USANDO LA CAPA DE RELLENO

Después de agregar los canales de información que faltan para todos los Conjuntos de texturas, miramos estos canales por separado en la vista 3D eligiéndolos del selector en la parte superior derecha de la Vista 3D o presionando el atajo "C" varias veces, para cambiarlos. cíclicamente (atajo "M" para volver a la vista general del Material).

Para algunos canales notamos que, en realidad, Sustancia no está generando la información: lo notamos debido a la Textura de tablero de ajedrez aplicada, en mi ejemplo, a canales como Normal, Altura, Opacidad y Emisión.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 10

La ausencia de esta información puede constituir un problema considerable durante la fase de exportación: Sustancia, de hecho, terminará dando un valor a estos canales en las Texturas, típicamente configurando el color de algunas Texturas como Opacidad o Emisión a negro; Si para Emisión esto está bien en general (porque en la mayoría de los casos los materiales no emiten luz), no es bueno para Opacidad, ¡porque Opacidad en negro (es decir, 0) en realidad significa objeto transparente!

Hay varias soluciones posibles para este problema; aquí les cuento lo que suelo hacer: para cada Conjunto de Texturas del proyecto agrego, en la parte inferior, una Capa de Relleno por defecto, que es un nivel de relleno; por defecto, este tipo de capa tiene Alto y Emisión en 0.0 (negro: sin relieve ni emisión de luz) y, por otro lado, Opacidad en 1.0 (blanco, objeto opaco, no transparente): configuraciones que, en la mayoría de los casos, van muy bien.

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 11

La Capa de Relleno debe insertarse, como se mencionó, en la parte inferior de la pila de Capas de cada Conjunto de Textura: de esta manera no cubrirá la información de las otras capas presentes y solo terminará llenando los canales de información faltantes con valores predeterminados que , en general, estarán bien.

 

SP 2019 20191028 006 Esportare le Textures I parte Presets nativi 12

RESUMEN ...

En resumen: cuando creamos un proyecto, debemos comenzar por elegir la Plantilla adecuada en función del software de destino, para tener los canales de información y otros entornos adecuados.

En caso de que falten canales de información, podemos solucionar el problema agregando los necesarios (y eventualmente modificando la configuración técnica) en Configuración de Conjunto de Textura, para cada Conjunto de Textura presente en la Lista, para el proyecto actual.

Antes de continuar con la exportación, podemos desplazarnos por los canales con C en la vista 3D para identificar cualquier información faltante y, si es necesario, resolver el problema con una Capa de relleno, que es un nivel de relleno que se colocará en la parte inferior de la pila de capas y materiales en la pestaña Capas, para cada conjunto de texturas del proyecto.

Finalmente, antes de exportar todo, verifique el formato del archivo, configurando uno con un canal Alfa (por ejemplo, PNG) si se requiere esta información, de lo contrario otro formato, según sus necesidades.

Para esta primera de dos entregas sobre la exportación de texturas de Substance Painter, ¡eso es todo!

En el próximo episodio veremos cómo definir nuestro propio Preset de exportación personalizado, con el fin de exportar las Texturas que nos interesan y, entre otras cosas, crearlas con un esquema de nombre personalizado, utilizando las macro variables de Sustancia; también veremos cómo crear nuestra propia Plantilla, con la configuración que pretendemos tener para todos nuestros nuevos proyectos.

Como siempre, los invito a expresar dudas, preguntas o solicitudes de aclaración en los comentarios al video en Youtube. ¡Nos vemos pronto!