Modelos, normales y barrido
En mi humilde opinión, un artista de texturas debería ser responsable del desarrollo. No para el escaneo en sí (debe ser realizado por artistas 3D o incluso especialistas en UV en general), sino por su estilo. Debe determinar cómo deben ubicarse las islas, cómo deben girarse y cuánto pueden extraerse en una situación dada, según los requisitos.
Es el artista por textura (y más tarde, por superficie) el que debe determinar la escala (escala) de las islas (más sobre eso más adelante).
En esta parte, observamos modelos, barridos y normales. Cree las texturas para el primer modelo completo (aunque sea simple) y configúrelo en Unreal Engine 4.
Atencion Se supone que en este punto usted descubrió el mapa normal y por qué lo necesita. Porque en este tutorial hablaremos de ello con mucha frecuencia.
Parte 1. Pixel aquí .
Parte 2. Máscaras y texturas aquí .
Parte 3. PBR y materiales aquí .
Parte 4. Modelos, normales y escaneo : lo lees.
Parte 5. Sistema de materiales aquí .
Modelos y PBR. Practica
No hablaré sobre cómo crear modelos o cómo limpiar / construir una cuadrícula. Esta información se puede obtener de muchos cursos, que son tanto de dominio público como de pago. Nuestra tarea ahora es analizar las limitaciones específicas en las estructuras de modelos para juegos y qué soluciones existen en este momento.
Pero primero, texturizaremos el modelo, y para un vistazo, la primera limitación. Trabajaremos en esta tienda:

Para hacer esto, necesitaremos descargar la malla en sí y un mapa normal preparado previamente (a continuación explicaré claramente por qué lo preparamos). Enlace
aquí .
También me gustaría hacer su base de madera y las patas de metal. Bueno, un poco de tierra se extendió. En consecuencia, necesitamos 2 materiales:
- el arbol
- metal mecanizado.
No eliminaremos la suciedad en un material separado, sino que usaremos el generador en Substance Painter y crearemos suciedad dentro del programa.
Comencemos la práctica y creemos un proyecto estándar, especifiquemos un banco, texturas y ejecútelo:

Tenga en cuenta que esta vez necesitaremos especificar el formato de mapa normal - OpenGL. Ya escribí en la última parte que los mapas normales son leídos de manera diferente por diferentes programas. Y esta tarjeta fue generada para programas que usan OpenGL.
Hemos cargado 9 texturas + malla principal.
Ahora no crearemos capas ni carpetas, pero veamos la tienda lo más cerca posible. Estamos especialmente interesados en los bordes del objeto:

Por ejemplo, destaqué un lado del banco. Ahora ella es lo más perfecta posible. Es decir, los dos lados se unieron en una costilla y crearon el ángulo perfecto. No importa cuánto acerquemos esta articulación, siempre será perfectamente uniforme. En realidad, no hay ángulos ideales, e incluso el borde de la navaja de afeitar se redondeará si se agranda adecuadamente. Es por eso que las costillas no se ven cinemáticas ahora. Dichos modelos se ven muy débiles, y cuando los vemos en el juego, inmediatamente sentimos toda la debilidad de la imagen visual, incluso si no notamos estos ángulos directamente en los modelos.
Esta es la primera limitación del modelo.Anteriormente, cuando los recursos de las tarjetas de video no permitían el procesamiento de millones de vértices en un cuadro, la solución estaba en las texturas de las tarjetas normales. Indicaron cómo la luz debería comenzar a reflejarse para que se tenga la sensación de que estas fronteras tienen un redondeo. Específicamente para este banco, un mapa tan normal se ve así:

Incluso solo mirando un conjunto de parámetros en la forma de este mapa, puede sentir cómo el mapa normal suavizará las esquinas.
Ahora, indiquemos este mapa normal como el principal (es decir, siempre se adjuntará al resultado, como la capa más baja sin máscara). Para hacer esto, necesitamos abrir la configuración de las texturas principales del objeto y especificar nuestra textura en los parámetros de los mapas normales:

Y mira el resultado:

Este es el primer método más famoso y utilizado a menudo para lidiar con bordes afilados: hornear chaflanes en mapas normales. Es decir, el modelo todavía está rígido, pero el mapa normal en sus bordes comienza a distorsionar la luz, lo que crea la ilusión de un hermoso bisel suave. En Internet puede encontrar mucha información sobre cómo hacer esto. Para objetos simples como este banco, no puede hacer modelos de alta poli (y no hornear en consecuencia), sino generar un mapa normal con chaflanes en los programas. Por ejemplo, el programa
Modo puede hacer esto. Nuestro banco tiene un mapa normal generado en Modo.
Pero omitimos el tema de la cocción en bisel y continuamos texturizando el banco.
Si las normales son cóncavasSi sus chaflanes no se volvieron tan suaves como los míos, pero apareció la ilusión de canales, entonces al crear un proyecto en Substance Painter olvidó cambiar el formato de visualización normal de DirectX a OpenGL.
Ahora cree 2 carpetas para las capas, cree y transfiera 1 capa a cada una e inserte todos los mapas de textura en cada capa. No te olvides de nombrar, para no confundirte:

Ahora la jerarquía de capas no es importante para nosotros, ya que estos materiales (metal y madera) no se cruzan entre sí, no tendremos una situación en la que el metal comience a aparecer a través del árbol y viceversa. Pero aún necesitamos máscaras, por lo que ahora debemos limitar la visibilidad de las capas en diferentes islas, así que ahora agregue máscaras negras a ambas carpetas:

Y ahora indicaremos qué islas de escaneo deberían enmascararse en blanco y cuáles deberían ser en negro. Para hacer esto, seleccione la máscara y cambie al modo de selección de isla:

Haga clic en el modelo en el banco principal (si seleccionó la máscara de árbol) y obtenga el siguiente resultado:

Como puede ver en la captura de pantalla, la máscara se ha actualizado y ahora tiene una enorme franja blanca, que se encuentra en la isla. Así pintamos todo el banco alrededor:

El material del árbol en sí no fue el más exitoso, pero nuestro objetivo ahora no es hacer todo lo mejor posible, sino comprender los principios del trabajo.
Haremos lo mismo con una máscara para metal, observando la zona visible con islas de patas. Seleccione la máscara de metal y especifique las partes necesarias del objeto:

También es necesario llegar a lugares de difícil acceso en los cruces y marcar las islas que necesitamos allí tanto para madera como para metal:

Si examina cuidadosamente las piernas, notará la
segunda limitación del modelo .
El escaneo no se realizó correctamente, y el patrón de acero entre los lados de las piernas no es consistente: su textura se dirige en diferentes direcciones, lo que es visualmente llamativo (la dirección está marcada por flechas):

Esto es precisamente una limitación, que se puede superar nivelando las islas y estirándolas. Ahora la isla en la que se dibuja la flecha hacia abajo se ve así (resaltada en naranja):

Para solucionar el problema, es necesario enderezar la isla en una línea:

Luego resolveremos esta restricción, pero tendremos otro: pulls:

Los tirones no son terribles si no son muy notables, o la textura en ellos no los delata. Pero debe tener cuidado con ellos, y a veces tiene que soportar el hecho de que puede haber inconsistencias en los materiales.
En general, el problema de las costuras en los objetos permanece sin resolver hasta el final. En el futuro, consideraremos otras opciones sobre cómo deshacerse de las costuras e incluso probaremos métodos realmente geniales en la siguiente parte.
Rasguños en el bancoComo sabemos, tarde o temprano, la pintura o las piezas de material comienzan a resquebrajarse en todas las caras de todas las cosas. Allí aparece una gran cantidad de rasguños y astillas:

Por lo tanto, creemos una máscara que nos permita mostrar los mismos rasguños, rasguños y astillas debajo en el futuro.
Para hacer esto, abra la configuración de textura principal (donde indicamos el mapa normal), seleccione
Bake Mesh Maps allí .
En la ventana que aparece, elimine todas las marcas de verificación innecesarias, dejando solo Curvatura y hornee haciendo clic en
Hornear [nombre adicional] Mapas de malla :

Cuando finalice la creación de la textura, estará disponible en el estante bajo la etiqueta Proyecto:

Y también esta textura se conectará automáticamente como el parámetro principal de Curvatura en la configuración de textura. Lo quitamos de allí:

Si creamos una nueva capa en la parte superior de la jerarquía y establecemos la textura resultante como el parámetro de Color base, veremos el siguiente resultado:

Ahora elimine esta capa, ya que la necesitamos únicamente para comprender.
A continuación, cree una carpeta, llámela Suciedad de carpetas y colóquela en la carpeta del árbol SOBRE la capa del árbol. En esta carpeta, cree una capa llamada LowLayer_Dirt, y en la carpeta misma cree una máscara negra para que la capa no se superponga con el resultado:

Señalaremos que la máscara de barro debe consistir en efectos de Relleno para agregar la textura que creamos (curvatura) y el efecto adicional "Niveles".
¿Por qué necesitamos el efecto Niveles ahora? ¿Probablemente notaste que la mascarilla es demasiado ligera? Ahora necesitaremos recortar los colores de tal manera que dejen manchas blancas claras en los bordes y que el resto sea completamente negro.
El resultado final debe ser el siguiente:

De esta manera, creamos el "
límite " para la suciedad. Ahora necesitamos limitar la suciedad misma. Para hacer esto, aplique una máscara negra a la capa LowLayer_Dirt. Después de eso, agregue el efecto Relleno y en él especifique la máscara Dirt4, que está oculta bajo la etiqueta de Procedimientos:

Arriba en la captura de pantalla, se encerran en un círculo los parámetros adicionales de la máscara Dirt 4. El hecho es que esta no es una textura en el formato en el que estamos acostumbrados a presentarla. Este es un generador de números aleatorios de acuerdo con ciertas reglas. En otras palabras, una textura de procedimiento en la que los píxeles tienen una intensidad generada. Puede jugar con parámetros, por ejemplo, gire Balance y Contrast para lograr el resultado deseado. Ahora cambie el parámetro Altura en la capa LowLayer_Dirt a -0.35 y mire el resultado:

Repito Ahora nuestro objetivo no es la pintura cualitativa perfecta del banco, sino trabajar con los conceptos básicos y la capacitación para trabajar con máscaras.
Ahora tareaEn general, ahora hemos examinado cómo aplicar rápidamente máscaras para materiales específicos que no se cruzan entre sí. Como puede suponer, para aplicar barniz a un árbol, necesitamos crear una capa en la carpeta con el árbol. Pero ahora no haremos esto, y la tarea en sí queda para la tarea:
- barnizar un árbol
- crea arañazos en el barniz (esos arañazos que son visibles solo en ángulo, porque empujan el barniz, pero no dañan la madera)
- crear arañazos debajo del barniz
Lanza tus manualidades a los comentarios, curiosamente =)
TotalHemos cubierto cómo texturizar modelos usando máscaras. Cómo aplicar suciedad, astillas y arañazos.Para que en el futuro tenga una idea simple de cómo funciona todo, recuerde la regla, un material, una carpeta para trabajar con ella. Para que pueda controlar mejor sus máscaras y capas. Por ejemplo, al colocar una capa de suciedad en la carpeta con el material, aún controla en el nivel de la máscara de la carpeta la visibilidad total de este material, y ahora también la suciedad en él (o la capa debajo de él). Por ejemplo, en realidad, otra textura puede estar debajo de la textura (material): el plástico puede esconderse debajo del revestimiento de metal. En este caso, el metal es la capa principal, y el plástico es la capa adicional debajo del metal (aunque en el tutorial anterior colocamos una capa con astillas y colocamos encima del árbol, de hecho es una capa inferior en la jerarquía. En otras palabras, esto es un error).
Capas de materiales, su jerarquía debe calcularse antes de comenzar a crear texturas. Esto es importante, porque los diseños de capa incorrectos en última instancia pueden llevar a tener que comenzar de nuevo y pasar largas horas examinando por qué su textura muestra solo una capa metálica.
En general, sobre esto cerramos el gran tema de cómo texturizar objetos para juegos dentro del marco de PBR. Todo lo demás es tecnología. Mi tarea es contar la esencia, la base de todo esto, para que no tenga más preguntas como "¿Cuál es la diferencia entre la tarjeta de Rugosidad y el mapa Metálico y Normal?" (Contestaré de inmediato sin nada), y surgieron preguntas: "¿Cómo se puede mejorar esto? ¿Cómo hacerlo mejor y más eficientemente? ”
Hemos visto algunas limitaciones que tienen soluciones.- Biselado
- Restricción sobre la ubicación de las islas.
Ambas restricciones pueden eludirse de una forma u otra. En el primer caso, creamos un mapa normal que simula una curva, en el segundo caso dibujamos islas y sacrificamos detalles (creamos tirones) por el bien general.
En el segundo caso, también debe recordar las direcciones de las islas: deben implementarse de manera coordinada, como la dirección del patrón en los materiales. De lo contrario, surgirán las dificultades descritas anteriormente.
Escanear
Reserva por el momento pintor de sustancias. No cierre el proyecto, será útil más tarde cuando exportemos texturas a Unreal Engine 4.
En este grupo de tutores, examinaremos el barrido de objetos, la densidad de las islas y finalmente estudiaremos el fenómeno de la densidad de texel.
Y comienza con texel.
TexelUn texel es un píxel de textura (ba-dum-s).
Densidad de texel e islasPara no confundir un píxel del monitor (un elemento físico del mundo real, que siempre tiene un tamaño fijo) con un píxel de textura (un cuadrado visualizado que puede cambiar su tamaño en la pantalla del monitor y generalmente distorsionarse en general), el píxel de textura se llama texel (Textura y píxel).
Hay un artículo bastante completo sobre este tema
aquí . Y la traducción está
aquí .
Sin embargo, una vez más consideraremos este fenómeno, porque en el futuro, si no nos damos cuenta de la idea completa de los texels, entonces será difícil para nosotros trabajar más. Y aún más, será difícil convertirse en un artista de superficie.
A partir de este momento, comenzamos a hablar correctamente: un píxel y un texel. Pixel es un elemento monitor. Texel es un elemento de textura.
Entonces, repitamos el pasado, texel es una unidad imaginaria de visualización de información. Existe solo en números (una matriz de números de varios canales), pero para que nos resulte más fácil trabajar con parámetros de representación, las texturas se introdujeron como un sustituto visual de las matrices de números. Creo que a nadie le encantaría pintar una nave espacial solo con números, teniendo en cuenta la idea de que un texel en la fila 8 y en la columna 453 debería ser 1 menos que texel en la fila 284 y la columna 112. Es más fácil pinchar un pincel en Photoshop.
Los renders (sistemas de visualización) leen estos números y los muestran como cuadrados (texels). Mostrar un texel en forma de cuadrado es una cuestión condicional. Y depende en particular de la densidad y la tensión de las islas de barrido modelo.
Hablaremos sobre la densidad de las islas de barrido un poco más tarde, pero ahora nos ocuparemos de la tensión de las islas.
Imagine una pieza de tela (si es difícil de imaginar, tome cualquier pieza de tela que pueda estirarse). En un estado de calma, el patrón (o patrón de material) permanece sin cambios, como pretendía el fabricante. Pero si comenzamos a estirar la tela, entonces el patrón comenzará a estirarse también. El mismo efecto ocurre cuando estiramos (o comprimimos) la isla de escaneo del modelo:

El escaneo de los lados izquierdo y derecho se encuentra así:

Podemos ver en el ejemplo que después de haber exprimido la representación (isla) del lado izquierdo, estiramos los texels para que ahora se muestren en el lado izquierdo del cubo en forma de palos rectangulares alargados. Es decir, un texel en un objeto depende de cómo se desenvuelve ese objeto. A menudo, en los editores 3D de objetos existe la oportunidad de rastrear cuánto se comprime o estira la isla de escaneo. Por ejemplo, en
Autodesk Maya, se ve así:

Donde el rojo muestra una fuerte compresión y el azul: estiramiento.
Densidad de la islaLa isla de barrido debe enderezarse correctamente sin crear soleras. Aun así, las islas deberían escalarse entre ellas. Es decir, el área ocupada por la isla debe corresponder al área de otra isla. De lo contrario, resulta que una isla con un área real de 20 cm2 ocupará el 20% del espacio de textura, y una isla con un área real de 100 cm 2 ocupará el 5% del espacio de textura. Y a partir de aquí tenemos un desacuerdo al mostrar el número de texels en la isla:

La isla en el lado derecho del cubo es muy pequeña y puede mostrar solo 25 texels, en la que se encuentra. En este sentido, el render aumenta los texels según el área de la isla, y vemos grandes cuadrados.
A la izquierda, la isla es muy grande: cubre un gran espacio de textura y es capaz de acomodar más texels, que es lo que sucedió en la pantalla. El lado superior tiene un tamaño promedio.
Es decir, para que el modelo se texturice correctamente, debe alinear el área de todas las islas para que sean iguales entre sí:

Arriba hay una imagen de un artículo de habrochanin
Osmandos . Su artículo está
aquí . Lectura recomendada.
Tamaño de texturaSi volvemos a nuestro cubo, veremos que los texels en él (cuadrados blancos y negros, en este ejemplo) son muy grandes (de nuevo, condicionalmente. Imagine que en la textura actual los cuadrados son texels). Incluso si alineamos todas las islas, aún vemos cuadrados en blanco y negro a los lados del cubo:

Esto nos dice que el tamaño actual de la textura no es de calidad suficientemente alta, por lo que vemos texels. ¿Pero es así?
Imagine que la textura actual (generalmente se la llama "Verificador", una textura para verificar la configuración correcta de la isla) tiene una dimensión de 63 por 63 texels.
Y ahora vemos texels porque el objeto está tan cerca de nuestra cámara que el tamaño de un texel ocupa un área de 30x30 píxeles del monitor (condicionalmente).¿Y si alejamos el cubo de la cámara?
¿Intentas distinguir texels en este cubo ahora?Ahora 1 texel es igual en tamaño a 1 píxel (pero esto no es exacto). Y el tamaño de tal textura es ideal, ya que le permite mostrar todos sus elementos de textura, y tampoco muestra nada superfluo y no oculta nada superfluo. Este es el tamaño ideal para tal distancia.Es decir, el tamaño de la textura depende mucho del área ocupada por el barrido del modelo y de la distancia del objeto a la cámara. Si el objeto se encuentra a una distancia suficientemente grande de nosotros, no tiene sentido darle texturas de 8k en la uña. Incluso si hace texturas para la película, nadie verá una franja blanca en la uña de una niña cuya mano ocupa el 3% del área de la pantalla.TotalEs importante comprender la escala de los modelos y dónde se ubicarán en relación con la cámara para dimensionar correctamente las texturas. Muy a menudo veía juegos de desarrolladores independientes que descuidaban estas reglas simples y, como resultado, sus texturas no eran de la mejor calidad.No olvides alinear las islas entre sí, esto es importante y afecta enormemente la percepción. Si abres, por ejemplo, el juego Fallout 4 y comienzas un diálogo con algunos NPS, notarás que la calidad de las texturas en la ropa del personaje deja mucho que desear, y la cara tiene el tamaño máximo de textura:
vale la pena recordar que en los juegos a menudo se subestima especialmente el tamaño de la textura en para el rendimiento ¿Y quién mira la ropa cuando un personaje tiene una cara tan interesante con cicatrices?Los grandes tamaños de texturas ocupan un gran espacio (en memoria, quiero decir). Por lo tanto, muchos desarrolladores toman una decisión difícil: qué recortar y qué dejar, siempre que el juego no se ralentice en su PC / consola / teléfono. Sin embargo, volveremos a este problema y consideraremos las últimas técnicas que nos permiten evitar tales problemas.Hornear textura
¿Qué es la textura para hornear?
La cocción de texturas es cuando un paquete para crear texturas comienza a calcular el resultado final y guardarlo en archivos separados, con la ayuda de la cual el modelo se pinta en el motor del juego.
Hablando en términos generales, en Substance Painter aplicamos capas tras capas a través de máscaras y otros trucos para lograr el resultado final. Estamos trabajando en cómo debería verse el modelo final, combinando varias opciones de materiales. Pero, si se da cuenta, cuanto más difícil sea su combinación de capas, máscaras y materiales, más difícil será procesar sus cambios en el programa. El hecho es que Substance Painter (cualquier otro programa de texturizado) verifica cada cambio y calcula en tiempo real TODAS las capas y canales que creó (y le recuerdo que también puede agregar sus propios canales a las capas para cualquier cosa) ) que caen en texel.
Y cuando estemos satisfechos con el resultado y estemos listos para cargarlo en el motor del juego, le pedimos a Substance Painter que haga los últimos cálculos y cree una textura con parámetros para el color de cada píxel, y 3 texturas adicionales con los parámetros Metálico, Rugosidad y Mapa Normal. Esto nos permitirá no cargar toneladas de máscaras y materiales adicionales en el juego, no forzar al motor a volver a calcular todo, sino simplemente proporcionarle un resultado final, que se convertirá en texturas para el modelo.
En general, descubrimos texturas para hornear. Sin embargo, tenemos que ver cómo se descargan los parámetros en las texturas, de modo que aprendamos cómo podemos controlar a qué canales de texturas irán los datos. Esto es importante porque todavía hay solo 4 canales en los estándares de imagen. Y necesitamos poder elegir a qué canal irán los parámetros, para que podamos conectarlos rápidamente más tarde.
Ahora volvemos a Substance Painter, en nuestro proyecto, y comenzamos a descargar texturas. Para hacer esto, abra la ventana para exportar texturas (Archivo - Exportar texturas):

Así es como se ve desde el principio. Si ampliamos el conjunto de texturas, veremos una lista de archivos que se cargarán como exportación:

Como puede ver, hay 4 archivos de textura que deberían exportarse, en comparación con los 9 archivos que descargamos.
Pero no nos interesan, porque son configuraciones estándar, pero necesitamos las nuestras (o de acuerdo con el estándar del estudio en el que trabajas). Por lo tanto, iremos a la ventana de
Configuración :

Primero, cree nuevos ajustes preestablecidos y selecciónelos para no eliminar los acabados:

Ahora preste atención al panel de la derecha:
Input Maps es una lista de canales que utilizamos. La mayoría de ellos tienen nombres, ya que se utilizan para PBR para fines específicos. Hay 8 canales (de 0 a 7) que son editables, pero Substance Painter no sabe por qué podría necesitarlos, por lo que los canales tienen los nombres estándar Usuario0 - Usuario7.
Mapas convertidos es una lista de texturas que dependen del tipo de render. Por ejemplo, el Mapa Normal depende del motor. Y necesitamos saber qué API utiliza el motor: DirectX u OpenGL, para seleccionar el mapa normal correcto para él. Por lo tanto, Substance Painter selecciona estas tarjetas en una categoría separada, ya que su resultado final dependerá de lo que elija.
Mapas de malla : esas texturas que cargó con el objeto o generó mientras trabajaba en él. Descargamos 9 texturas. 8 de ellos pertenecían a capas (materiales), y el noveno mapa normal de biseles ya estaba directamente relacionado con el objeto. Además del mapa normal, también creamos un mapa de Curvatura para superponer chips en él. Estas tarjetas se relacionan específicamente con el objeto y no se pueden usar como base para los materiales, por lo tanto, se colocan en una lista separada.
Ahora considere el panel de creación de textura:

Estos son botones, al hacer clic en los cuales crea 1 archivo de textura (más precisamente, prepare todo para su creación).
Gris : crea una textura con un solo canal. En este canal podemos colocar cualquiera de nuestros ajustes: Rugosidad, metálico, especular, emisivo. Todas esas configuraciones que funcionan en un canal.
RGB : crea una textura con 3 canales conectados. Es decir, está destinado a parámetros tales como color (BaseColor), mapa normal. Es decir, para todos los parámetros que usan 3 canales para darse cuenta por completo.
R + G + B : crea una textura con 3 canales no conectados. Es decir, tenemos una textura con tres canales grises. Podemos especificar un parámetro con 1 canal en cada canal de textura por separado. Esto se usa a menudo para ORM - (Oclusión-Rugosidad-Metálico). Es decir, la oclusión ambiental se almacena en el primer canal, la rugosidad se almacena en el segundo y la metálica en el tercero.
RGB + A - lo has adivinado - 3 canales conectados y 1 no conectado.
R + G + B + A : cuatro canales no conectados.
Ahora, sabiendo esto, piense en cuántos archivos necesitamos para cargar toda la información sobre cómo debería verse la textura final del objeto.
Así es, al menos 3 texturas:
- RGB - BaseColor
- R + G + B - ORM
- RGB - Mapa normal
Haga clic en las texturas que necesita una por una y obtendrá la siguiente lista:

No olvides nombrar las texturas correctamente, de lo contrario no sabremos qué es dónde y cómo.
Ahora necesitamos indicar qué parámetros en qué canales se almacenarán. Para hacer esto, simplemente transfiera los parámetros de los mapas de entrada a los canales deseados. El mapa normal debe migrarse a DirectX, ya que UE4 usa este formato de lectura normal.
Como resultado, obtenemos el siguiente conjunto:

Ahora vuelva a Exportar. Ahí estamos:
- Indicamos el camino donde guardar.
- Seleccione los ajustes preestablecidos que creamos en las opciones de configuración.
- Seleccione el tipo de textura - Targa.
- Haz clic en Exportar.

Y voila, la exportación de texturas fue un éxito. Abra la textura BC (BaseColor) en Photoshop y mírela:

¿Recuerdas cómo creamos 2 materiales diferentes en diferentes capas? Substance Painter dobló todas las capas, calculó el resultado de la versión final de la textura que cubrirá el objeto y "horneó" todos los texels exactamente como los enmascaró. Hizo lo mismo con Normal Map, Roughness y Metallic.
Si abrimos el mapa ORM en Photoshop, vamos al modo de visualización del canal y seleccionamos el último (azul), luego veremos el mapa metálico horneado:

Desde este mapa puedes imaginar dónde deberían ser las islas de metal y dónde, no de metal.
TotalAprendimos a crear texturas prefabricadas para el motor del juego.
Es importante Ahora hemos aprendido a hornear texturas, haciendo todo el cálculo de crear estas texturas en Substance Painter. Es decir, hicimos todo lo posible para obtener texturas listas para usar, que ahora podemos usar en diferentes motores (con la advertencia sobre el procesamiento de algunos parámetros PBR). La desventaja de este enfoque, si necesitamos cambiar algo radicalmente, tenemos que volver al programa y rehacer las texturas.
Para calcular cómo mostrar correctamente el color y la luz de un texel, la tarjeta de video necesita hacer cálculos para cada texel. Y no dependerá de cuántos píxeles tenga en el monitor. Esto dependerá de cuántos texels se usen en la formación de la textura (usamos configuraciones estándar en el staker, lo que significa que usamos 1024 * 1024 texels). Es decir, para mostrar la textura correctamente, el pintor necesita contar cada píxel y tener en cuenta todas las capas que creó en él. Esta es una tarea que consume mucho tiempo, por lo que antes (y ahora) las texturas PBR se crearon principalmente en programas de texturizado.
Motor irreal 4
Y, por último, descargue nuestro objeto en UE4 y vea nuestro resultado. No describiré cómo abrir UE4, cómo crear un proyecto, cómo instalarlo y qué botones presionar allí. Hay muy buenos cursos de
Flakky para esto . Los cursos se encuentran en su sitio web
uengine.ru .
Ahora consideraremos solo la importación de nuestra tienda y las texturas resultantes, la creación de un sombreador primitivo y para resumir.
Primero, abra el proyecto y cree una carpeta "Bench" en él, en la que soltaremos todas nuestras texturas y el objeto. Para importar todas las texturas, simplemente transfiéralas del navegador al proyecto. Se importan sin problemas y no solicitarán configuraciones adicionales. En cuanto al objeto, al importarlo, Unreal Engine le pedirá que especifique algunas configuraciones. En general, nada necesita ser cambiado excepto 2 parámetros. Deben estar deshabilitados:

Estos parámetros son responsables de importar texturas, y los tenemos almacenados por separado.
Como resultado, en nuestra carpeta hay 3 texturas y 1 objeto:

Ahora en cualquier espacio libre en el navegador del proyecto, haga clic en RMB y seleccione Material:

Nómbralo M_Bench.
Ábrelo y arrastra todas nuestras texturas hacia él. Obtenemos la siguiente imagen:

Estos son contenedores de nodos que le permiten visualizar la configuración para que sea conveniente incluso para un novato trabajar con ellos (muchas gracias por la implementación exitosa de los nodos de Epic Games. Sin los sistemas y nodos de Blueprints en particular, muchos habrían quemado cabezas de números y códigos). Los pines blancos (salidas y entradas) en las texturas (nodos a la izquierda) indican que se alimentan tres canales a la vez. Pero rojo, verde y azul: cada canal por separado. El último grisáceo es el canal alfa, pero no está en nuestras texturas, por lo que no utilizaremos este pin. A la derecha hay un nodo grande que toma los parámetros, los resume y crea un material completo.
Aquí se usa todo el principio del trabajo de texturas en Substance Painter (y en cualquier otro motor de juego): usted indica qué parámetros se necesitan para qué y el programa da el resultado. En este caso, el Substance Painter se hizo cargo de la mayoría de los cálculos, mientras que el Unreal Engine simplemente suma los resultados finales del pintor y crea un sombreador (material) listo para usar que se puede poner en el banco.
Solo necesitamos conectar los pines correctamente y pedirle al motor que calcule el resultado por nosotros:

¿Y por qué no pegué un canal rojo de la textura ORM en Ambient Occlusion? Ya mencioné que AO se considera obsoleto, ya que AO a menudo se calcula en tiempo real. Y en el nodo material hay un pin de oclusión ambiental, pero no funciona. Ni siquiera se tiene en cuenta. Dejado aquí por alguna razón. Supongo que se requiere una cantidad de trabajo suficientemente grande para eliminarlo.
Entonces Tenemos listo el sombreador (material) más simple y finalmente podemos pintar nuestra tienda. Para hacer esto, abra una tienda en UE4 haciendo clic 2 veces con LMB. Y arrastre el material desde el navegador del proyecto a la ranura de material:

Bueno aqui. Ahora ha recibido su primer objeto terminado.
Puede ver el resultado usted mismo, pero solo lo resumiré.
TotalEn una forma muy simple, aprendimos cómo crear los primeros sombreadores en el motor UE4. Usted pregunta: ¿por qué se llama Material y no un sombreador en el motor? Es más fácil explicar qué tipo de formato de construcción de textura es este: este es el material que se superpone al objeto y el objeto se vuelve hermoso. Pero las capacidades de los sombreadores son mucho mayores (mucho, cientos de veces más) que solo mostrar texturas.
Offtop. Resolver problemas de chaflánArriba, identifiqué el problema con chaflanes y cómo resolverlo. Pero hay una segunda forma, que no consideraremos completamente en esta parte: crear chaflanes en el modelo y alinear las normales para que la superficie de la malla cree la ilusión de un hermoso bisel. Tal chaflán se crea alineando las normales de los vértices (tangentes). Y este método es aún más económico para el rendimiento que el método con mapas normales, y su nivel de belleza es extremadamente alto en relación con la textura habitual de los chaflanes. Aquí hay un ejemplo de una puerta que se encuentra en uno de nuestros proyectos de juego (aún no anunciado):


Encontré información sobre este tema solo en recursos en inglés.
AquíLa ventaja de este método es que creamos una faceta hermosa, mientras que el número de vértices no aumenta mucho, ya que los bordes duros siempre son 2 vértices en un punto, y los bordes blandos son 1 vértice, y el número aumenta triángulos para dibujar:

Vale la pena recordar que necesitamos un mapa normal para un objeto en el 99% de los casos para crear chaflanes. Y los mapas normales de materiales y algunos elementos individuales son un tema ligeramente diferente.
TotalOhhhhh Bueno, la gran parte fue esta. Pero era necesario cubrir completamente el tema de la textura estándar. Y en esto podemos parar.
Bueno, la verdad es que hemos pasado de un elemento de píxeles apenas perceptible en su monitor a esquemas complejos de máscaras que determinan la visibilidad de capas no menos complejas de materiales. Finalmente, dividimos la palabra píxel en dos: texel y pixel. Y aprendimos a hornear y conectar todo esto en el motor del juego. En este paso, puede dibujar una
línea larga y audaz y decir que nos hemos convertido en verdaderos artistas de texturas. Todo lo demás, la belleza de cortar objetos, la cinematografía de una representación visual, es la acumulación de tiempo y el deseo constante de aprender nuevas técnicas y métodos.
Puedes ver más lecciones y mejorar tu habilidad. Por ejemplo, en Substance Designer hay un gran yunque de generadores, que se pueden usar como generadores de capas. Y todas esas máscaras que eran para suciedad, ya no se crean manualmente, sino que se implementan en el nivel de funciones que harán todo maravillosamente por usted.
Siempre debe recordar que consideramos el rango de valores de 0 a 1. Esto es importante porque las texturas estándar tienen 8 bits por canal, y las texturas HDR tienen canales más amplios (de 16 bits o más), lo que significa que el rango de números es mucho mayor que 0 a 255. Pero todavía es un rango de 0 a 1.
Y todo parecía ser el límite. Hemos alcanzado un alto nivel de comprensión de cómo se crean las texturas. Puede soltar todo e ir a trabajar como artista de texturas para cualquier empresa que comparta modelos y texturas (como lo hacemos, por ejemplo).
¿Pero es así? ¿Realmente hemos alcanzado el límite en el texturizado y fallará más?
¿O todavía hay más para crecer?
Si! Y nos queda un tutor más, que llevará las texturas a un nuevo salto tecnológico y, en mi humilde opinión, representará la próxima generación de texturas.