En la última parte del tutorial, examinamos el principio de funcionamiento de las máscaras, qué es una "textura", y que los canales se utilizan para absolutamente todo: los parámetros de píxeles. Ahora veremos el PBR favorito de todos y recopilaremos texturas para crear asfalto húmedo y sucio.
En esta lección, me referiré mucho a otros tutoriales y fuentes de información para minimizar el volumen del tutorial. La mayoría de los enlaces se proporcionarán al comienzo del tutorial, por lo que si no comprende ninguno de estos tutoriales, siga los enlaces y lea la información allí. Cuando esté listo, regrese al tutorial y continúe aprendiendo los conceptos básicos del artista en las superficies. Si alguno de los enlaces no está disponible, hágamelo saber en PM o en los comentarios. Definitivamente voy a corregir este malentendido.
Además, si algo es completamente incomprensible, le ruego que lo informe para poder ampliar este tema con más detalle.
Parte 1. Pixel aquíParte 2. Máscaras y texturas aquíParte 3. PBR y materiales : lo lees.
Parte 4. Modelos, normales y barrido aquí .
Parte 5. Sistema de materiales aquí .
PBR
Esta abreviatura se descifra de la siguiente manera:
Representación basada en la física . Lo que significa "representación basada en la física".
Como todos sabemos, no podríamos ver un solo objeto si los objetos no reflejaran la luz que cae sobre ellos. Todo esto funciona de manera muy simple: un rayo de luz golpea la mesa, rebota y golpea la retina.
Dependiendo de la superficie, de su condición (ya sea que se refleje como un espejo o tenga aspereza, si hay gotas de suciedad / agua / café en la superficie), un rayo ya modificado entra en su ojo (digamos que sí). Además, un rayo no es del todo correcto, ya que ya se sabe que la luz también es una onda. Pero esto ya es demasiado profundo para nosotros, y aquí puedo estar equivocado.
Pero la esencia permanece sin cambios: la forma en que vemos los objetos se construye a partir de la forma en que la luz se refleja desde la superficie. Y el estándar PBR describe qué parámetros deben tenerse en cuenta para que la luz se vea lo más cinematográfica posible.
No comenzaré a escribir sobre las reglas por las cuales se construye la luz, cómo se refleja y si se refleja en absoluto. Sobre cómo funciona la luz a nivel físico, hay un montón de artículos:
- El artículo básico de los creadores de Substance Painter / Designer está aquí . Y su traducción de 2015 está aquí . Un enlace a la segunda parte de la traducción está en la misma página.
- Aquí hay un artículo de Google sobre su desarrollo de PBR (los mismos testículos, solo de perfil con otras fórmulas).
- Un artículo de MrShoor , quien revisó PBR en la programación de sombreadores de bajo nivel aquí .
Parámetros O cómo se configura PBR.
Consideraremos PBR desde el punto de vista del concepto general y al nivel de trabajo con cada parámetro por separado a través de canales de píxeles.
Desde la última parte del tutorial, recuerde que PBR se crea realmente a través de la suma de parámetros (no debe entrar en las fórmulas). Es decir, PBR consiste en un conjunto de parámetros:
- Color (Color base / Albedo).
- Metálico
- Especular
- Rugosidad
- Brillo
- Oclusión ambiental (en adelante, AO).
- Altura
- Mapa normal
Todos los parámetros, excepto el mapa de color y normal, usan 1 canal y el mapa de color y normal: 3 canales cada uno:
- Color utiliza 3 canales: RGB para dar forma al color del píxel.
- El mapa normal usa 3 canales para simular la pendiente de la superficie. Cada canal es responsable de la inclinación vertical, horizontal y de profundidad, respectivamente.
Offtop. Mapa normalEn cuanto al Mapa Normal, su implementación técnica (qué canales son responsables de qué pendiente) difiere de la configuración de renderizado. Entonces, por ejemplo, en Unreal Engine 4, el Green Channel es responsable del valor negativo de la inclinación vertical, y en Unity de lo positivo.
Más información se puede encontrar
aquí .
También hay un gran artículo completo sobre cómo hornear Mapa Normal y cómo trabajar con él en el sitio web render.ru
aquí .
Enlace al foro de discusión de mapas normales y de altura (parámetro Altura)
aquí .
Y la descripción de Wikipedia de texturas en relieve
aquí .
Ahora vale la pena señalar que la representación (pantalla), basada en la física, tiene varias implementaciones diferentes. Todos ellos son similares entre sí y usan los mismos canales de píxeles para ajustar el resultado final. Por lo general, se comparten 2 tipos de implementación:

En el primer tipo, se tienen en cuenta los parámetros de
Color-Metal-Rugosidad , en el segundo -
Difuso-Especular-Brillo .
Ambos tipos de implementación usan los mismos 3 parámetros:
AO, Mapa normal, Altura .
Offtopic sobre qué estándar usaremosUsaremos la primera opción, ya que en el futuro transferiremos nuestro entrenamiento a Unreal Engine 4, y este motor usa la primera variante de combinaciones + tiene un parámetro Specular adicional, que una vez más muestra que PBR es una convención.
Además, en el PBR moderno, el parámetro Altura se mezcla y se oculta en el Mapa normal. De hecho, es más fácil expresar desniveles a través de un Mapa Normal que calcular la profundidad / altura de los píxeles, o algo más en canales adicionales. Todo es más simple de lo que parece, y es mejor no ser inteligente con docenas de parámetros.
Aunque al crear texturas en Substance Painter, el parámetro Altura se extrae por separado, cuando se hornean texturas, se cose en el mapa normal (aún puede seleccionarlo en un canal separado si lo desea).
Total, el resultado final de la imagen consiste en superponer parámetros en un píxel:

Veamos ahora cómo funciona esto en Substance Painter. Para hacer esto, nuevamente creamos un nuevo proyecto con la configuración habitual de playan y estándar (hablé de ellos en la segunda parte de los tutoriales). Y crea una nueva capa de relleno:

Ahora echemos un vistazo a la textura normal estándar del conjunto
"Niche Rectangle Top Wide" del pintor de sustancias, que se encuentra debajo de la etiqueta
Superficie dura :

A continuación, transferiremos este mapa normal al parámetro de la capa de Color base (de la lección anterior debemos recordar cómo hacer esto). Así es como se ve el mapa normal, si lo toma como una imagen (imagen de arriba). Pero ahora lo eliminaremos del parámetro BaseColor (lo hicimos para familiarización general) haciendo clic en la cruz en el parámetro:

Y transfiéralo al parámetro Normal:

Su resultado final se actualiza inmediatamente. Ahora, si mantiene presionadas Alt y LMB, puede girar la cámara y mirar los planos desde diferentes ángulos. La luz reflejada por los píxeles comenzará a brillar, creando la ilusión de profundidad. Es como si realmente hubiera algunos huecos y protuberancias en el plato. Todo esto se nota en un ángulo de 90 a 140-150 grados. Y cuanto mayor es el ángulo de inclinación, más se hace evidente que este es un cálculo de una tarjeta de video, que determina cómo cada píxel debe reflejar la luz para crear esta ilusión. Como valores iniciales, transferimos 3 parámetros a la tarjeta de video en forma de canales de píxeles (en otras palabras, la textura del mapa Normal):

Ahora seamos pervertidos. Eliminaremos esta tarjeta del parámetro Normal y la indicaremos en el canal Metálico. Metálico tiene un canal, y el mapa normal tiene 3 canales, respectivamente, al insertar un mapa normal en este parámetro, Substance Painter cortará 2 canales adicionales (supongo que GB) y dejará solo uno para los cálculos:

Y el resultado:

El resultado final ahora muestra que no hay más protuberancias y depresiones, pero la superficie misma comenzó a parecerse a una especie de placa de metal. También puede ver cómo Metallic se verá como uno, sin otros parámetros (BaseColor y otros), cambiando el modo de visualización a 1 canal Metálico (si no ha cambiado nada, entonces en la ventana de visualización en la parte superior derecha está la opción de cambiar la visualización):

Seleccione metálico y obtenga el siguiente resultado:

Como puede ver, este es un canal en escala de grises, que determina qué píxeles deben verse como metálicos, cuáles son algo promedio y cuáles no metálicos. 0 no es metal. 1 - metal.
De manera similar con el canal Roughness: cualquier textura es adecuada para trabajar con él. Depende del resultado final que necesite. Puede intentar pegar cualquier textura disponible en el canal de Rugosidad usted mismo y mirar el resultado.
Materiales sofisticados
La palabra "material" generalmente significa una colección de parámetros listos para usar, cuya combinación da un resultado cinematográfico: material (en otras palabras, textura, superficie).
Tome, por ejemplo, esta silla de cuero:

Visualmente, la silla consta de 3 materiales:
- Piel
- Remaches de metal.
- Patas de plástico (posiblemente de madera).
Cada material tiene sus propios parámetros:
- Color (por ejemplo, el cuero es casi negro con manchas de grietas, y el remachado es de color dorado con algunas manchas de suciedad).
- Metálico (en cuero es casi 0, y en remaches está cerca de 1).
- Rugosidad (en la piel está más cerca de 1 y en los remaches más cerca de 0).
- Mapa normal (en la máscara, el mapa normal muestra grietas y su profundidad, y en remaches - hendiduras técnicas / apariencias).
- AO (en la piel mostrará la corrección del sombreado de las grietas y, en los remaches, hendiduras).
Y así los parámetros de la piel se ven visualmente:
Para resumir el subtotal:Ahora sabemos:
- El principio de funcionamiento de PBR. Y cómo gestionarlo a través de canales.
- Cómo funcionan todos los parámetros y cómo podemos influir en ellos a través de las texturas.
- El principio de construcción de materiales complejos.
- Cómo mezclar materiales con máscaras.
En base a todo esto, ahora podemos imaginar cómo puede crear asfalto mojado y sucio con marcas de neumáticos. Podemos?
Practica
¿Y qué necesitamos para recolectar asfalto mojado y sucio con marcas de neumáticos?
Para comenzar, necesitamos determinar la cantidad de materiales que se utilizarán en nuestro tutorial:
- Asfalto
- Suciedad
- Huellas de neumáticos (en otras palabras, goma).
Luego agréguelos al proyecto de Substance Painter.
¿Dónde conseguir los materiales?Surgió la pregunta: ¿dónde obtener estos materiales? Puede sufrir un poco y crear una colección de parámetros para cada material manualmente. Por ejemplo, encuentre una imagen de asfalto. Córtalo a un cuadrado y conviértelo en BaseColor. Luego, a través de programas especiales (por ejemplo, xNormal), cree un mapa normal a partir de esta imagen. A través del mapa normal, ajuste Metálico y Rugosidad (también puede usar BaseColor). Como resultado, pase varias horas creando el material de asfalto ideal, verificando los parámetros correctos para el metal y la rugosidad.
Y puedes simplificar todo.
Como dije anteriormente, la mayoría de los materiales ya han sido preparados para usted durante mucho tiempo. Su tarea es solo encontrar soluciones preparadas que cumplan con sus requisitos, descargarlas e instalarlas. Si utiliza Substance Painter, allegorithmic (ahora Adobe) tiene un repositorio especializado de materiales terminados que se pueden descargar. El acceso a ellos es de pago y gratuito.
Si usa Quixel, entonces cientos de materiales diferentes ya están incluidos en este programa, y solo necesita especificarlos y comenzar a trabajar con máscaras. Lo cual, por cierto, es muy conveniente para los principiantes, por lo que si acaba de comenzar a dominar la textura y aún no está listo para trabajar con la generación de materiales, le recomiendo comenzar con Quixel. El principio es el mismo, otro envoltorio. Los tutores del programa están en Internet.
Aquí (
Enlace ) puede descargar la textura de los materiales que utilizaremos en nuestra práctica.
Nuestro objetivo ahora no es crear texturas de muy alta calidad, sino familiarizarnos con la creación de algo interesante utilizando parámetros y máscaras PBR. Por lo tanto, en esta etapa, no usaremos generadores de máscaras o suciedad, sino que haremos todo manualmente para comprender la esencia. Cuando comprenda la
esencia , la base de todo esto, puede usar los generadores de manera mucho más eficiente que simplemente comenzar a girarlos con la esperanza de obtener la máscara / material perfecto.
Si ya ha mirado los archivos, entonces probablemente prestó atención a la máscara del neumático. Se preparó por separado, ya que no podía generarlo sobre la marcha en Substance Painter, por lo que utilicé el patrón de neumático que se encuentra en Internet y lo preparé a través de Photoshop para trabajar en Substance Painter:

Ahora cree un nuevo proyecto y agréguele todos nuestros archivos. Para hacer esto, seleccionamos la configuración estándar, pero ahora necesitamos especificar nuestros mapas de textura al crear el proyecto:

En el proyecto, cree 3 carpetas para cada material y cámbieles el nombre para no confundirse:

En nuestro caso, la jerarquía de carpetas es muy importante (y no solo en la nuestra, sino siempre importante). La jerarquía determina el nivel de material, en otras palabras, qué se encuentra en qué. El asfalto en nuestro ejemplo es el fondo. Quedan restos de neumáticos en él. Pero la suciedad puede estar en las huellas de los neumáticos y en el pavimento. Por lo tanto, la suciedad estará por encima de todo.
Ahora, ocultemos de inmediato todo lo que debería estar oculto, y dejemos solo el asfalto. Es decir, cree máscaras negras en las carpetas Rubber y Dirt:

Ahora cree en cada carpeta la primera capa. O más bien, cree capas y distribúyalas en carpetas. No se olvide de nombrar, para no confundirse más tarde (a pesar de que no está claro visualmente que las capas están en carpetas, créanme, están en carpetas):

Todas las nuevas capas tienen parámetros promedio básicos. Por lo tanto, el color base es gris, lo normal no muestra protuberancias, y lo metálico y la rugosidad no crean la impresión de ningún material.
Y ahora tenemos que arreglar esto indicando en cada parámetro la textura correspondiente (usando el asfalto como ejemplo):

Su tarea ahora es distribuir todas las texturas de los materiales en los parámetros de capa deseados. Después de hacer todo esto, asigne una máscara para el caucho y cree el efecto de las trazas. Como ya tenemos una máscara negra en la carpeta, solo necesitamos conectar el archivo con los rastros de las ruedas a esta máscara. Para hacer esto, haga clic en RMB en la máscara y seleccione Agregar relleno:

Y en los parámetros de GrayScale, especifique la máscara:

Como resultado, aparecerán rastros de goma en el asfalto, pero será bastante difícil de distinguir, ya que esto sigue siendo PBR y cinematografía (!!!). Para verlos, debe girar el plano en un ángulo determinado:

Ahora estas dos capas (asfalto y caucho) están en el mismo nivel. Pero sabemos que el caucho está
sobre el asfalto, lo que significa que la capa de caucho debe ser físicamente más alta. Y ahora usaremos el mismo parámetro Altura.
Encuéntrelo en las opciones de la capa de goma y desatorníllelo al máximo para sentir cómo funciona. Gire la cámara para ver cómo la luz comenzó a procesar los píxeles que usted configuró. ¡Siente tu poder! =)
Bueno, ahora alinee el parámetro a 0.1 para que no sea tan explícito y más creíble:

Podríamos desenroscarlo a -0.1 para que tengamos hoyos, como después de los autos en el lodo, pero esto es asfalto y no falla tan fácilmente.
Ahora prepara la tierra. Basado en la realidad, se puede suponer que la suciedad debe obstruir las grietas de asfalto en primer lugar. Pero no tenemos una máscara para poder mostrar una capa de suciedad en las grietas. Sin embargo, existe una solución: podemos tomar asfalto BaseColor y hacer una máscara para la suciedad sobre la base.
Como funciona Si observa el asfalto BaseColor, puede notar que cuanto más oscuro es el píxel, más se ve como una grieta. Es decir, en esta imagen, todo lo oscuro es grietas, y todo lo claro es la superficie. Y si queremos usar la imagen como una máscara, entonces sería suficiente para nosotros invertir los colores (oscuros para hacer la luz y viceversa) píxeles, y obtenemos una máscara para la suciedad.
Para hacer esto, apague la pantalla de la capa de asfalto (haciendo clic en el ojo de la carpeta con asfalto) para que sea más fácil percibir lo que estamos haciendo.
A continuación, indicamos que el archivo debe estar en la máscara de barro y adjuntamos el archivo Asphalt_BaseColor:

Como escribí anteriormente, el asfalto era claro y las grietas oscuras. En consecuencia, la suciedad comenzó a aparecer en grandes superficies, y el color gris básico (parámetros básicos / fondo) domina en las grietas.
Ahora nuestra tarea es hacer que esta textura se perciba de manera diferente: invertir colores y fortalecerlos para que la máscara muestre suciedad en las grietas. La forma más fácil de hacerlo es con el efecto adicional "Niveles". Agregue un filtro adicional "Niveles" a la máscara de la misma manera que agregamos
Relleno (RMB - Agregar niveles). Y giramos los parámetros aproximadamente, como en la imagen a continuación:

Y haga clic en el botón "Invertir" a continuación para invertir los niveles de intensidad del canal:

Ahora la suciedad se encuentra exactamente donde la necesitamos: en las grietas del asfalto:

Enciende el asfalto y mira nuestro trabajo:

Pero es muy simple. Por lo tanto, ahora agreguemos marcas anaranjadas a nuestro asfalto. Para hacer esto, necesitaremos:
- Cree una nueva carpeta y asígnele el nombre Road_Line.
- Agregue una máscara negra a la carpeta.
- Agregue una nueva capa a la carpeta y asígnele el nombre Layer_RoadLine.
- Para la capa en los parámetros BaseColor, especifique el color naranja directamente:

También puede ajustar el metalizado y la aspereza a su gusto para crear una pintura realista. No hice esto para reducir el tiempo del tutor.
Ahora, recordando las reglas de la jerarquía de capas, organizaremos una carpeta con una línea de camino entre el asfalto y el caucho:

Ha llegado el momento de dibujar a mano. Seleccione la máscara de la carpeta RoadLine y dibuje una franja de marcado en el avión. Tengo algo como esto:

Ahora vale la pena agregar otra máscara a la capa de pintura para crear una sensación de caída de la pintura. Para hacer esto, no crearemos una carpeta, sino que crearemos una máscara directamente en la capa y agregaremos cualquier máscara estándar de Substance Painter. Para hacer esto, agregue una máscara y luego agregue un relleno (RMB por máscara y Agregar relleno). En el relleno, especifique la textura Dirt 4, que está debajo de la etiqueta de procedimiento:

Y mira el resultado:

No olvide que la capa de pintura debe especificar la altura. Propongo indicar 0.05 - el promedio entre el caucho y el asfalto.
Tenga cuidado, porque para esto necesita seleccionar la capa y no la máscara. Puede especificar un valor manualmente haciendo clic en el número a la derecha de la parte superior del control deslizante.
Bueno, ¿qué es el asfalto sin agua?Para hacer esto, cree una carpeta con la capa usted mismo.
NO agregue máscaras todavía.
Establezca la carpeta en la jerarquía en la parte superior. Después de todo, el agua es de arriba, ¿verdad?
En la capa, desenrosque al máximo Metalizado y al mínimo Rugosidad. Luego, indique una altura de agua de 0.15.Y ahora apague el canal Color haciendo clic en el botón marcado con un marco azul:
¿Qué pasó? Todas las capas inferiores se mezclaron de acuerdo con las máscaras y la capa con agua. Pero el agua ahora no tiene un canal de color, lo que significa que no puede pintar los píxeles que necesita. Para esto, todos los demás canales afectan los píxeles de textura, y el asfalto se volvió lo más húmedo y desagradable posible, como si no fuera asfalto en absoluto =)
Ahora tarea: coloque las máscaras para que el asfalto no esté completamente mojado, pero con pequeños charcos. Recuerde que los charcos no tienen asperezas en la superficie; piense en cómo mezclar las capas para que los charcos sean lisos. ¿Y qué más hay que hacer para esto? Estoy seguro de que puedes hacerlo =)ResumenEn este tutorial, hemos cubierto cómo crear texturas. En general, aplicando correctamente los parámetros, ya puede comenzar a texturizar e incluso llamarse valientemente un artista de texturas junior.Aprendimos cómo funciona PBR.Los parámetros en PBR no necesitan ser únicos. Estos siguen siendo parámetros normales que podemos especificar a través de canales de píxeles.Podemos usar las mismas texturas de diferentes maneras. Esto nos da una ventaja: no necesitamos cargar memoria con archivos innecesarios con una gran cantidad de píxeles, sino simplemente cargar un archivo y decirle al programa cómo calcularlo.Nos familiarizamos con los materiales y cómo se ensamblan. Ahora sabe que no es necesario ser un maestro de Photoshop súper genial, pero solo encuentre los parámetros listos para que el programa pueda presentar el material correctamente a partir de ellos.En las siguientes partes, cubriremos temas como barrido, densidad de texel (y qué es texel), y finalmente llegaremos a la parte más interesante: crear sus propios sombreadores en UE4.Programas de Quixel y pintor de sustanciasSiempre recomiendo que los principiantes que participan en la creación de texturas a partir de materiales (no los propios materiales) comiencen a trabajar con Quixel. Dado que este programa ya tiene cientos de ajustes preestablecidos, que son muy fáciles de controlar y configurar, y a través de máscaras puede lograr el mismo resultado que tenemos en la práctica a través de Substance Painter.En cuanto a Substance Painter, su poder comienza a aparecer cuando el tercer programa de Substance Designer se incluye en el trabajo. Designer le permite crear sus propios materiales generando las superficies que necesitamos. El diseñador es genial en el sentido de que puede crear "materiales inteligentes" que tendrán configuraciones para máscaras internas que controlarán la cantidad y calidad de los materiales internos. Es decir, "materiales inteligentes" en este caso es un contenedor que contiene varios materiales y máscaras predefinidas, que se rigen por fórmulas y algoritmos que el artista prescribe en Designer.Luego, este contenedor se exporta a Painter, donde se ajusta. Por ejemplo, creamos nuestro asfalto mojado en Painter. Pero podríamos recopilar en Designer y conectar un montón de configuraciones adicionales que nos permitirían cambiar el resultado sobre la marcha, en un solo lugar, y no cambiar entre un montón de máscaras, como en Painter.Sobre PBR y la traducción de esta abreviaturaMuy a menudo, los PBR se traducen como un renderizado físicamente correcto. Creo que la traducción precisa es importante aquí, porque las traducciones del tipo "Físicamente correcto" son fundamentalmente incorrectas, ya que el render en este caso se basa en la física, pero no tiene que ser correcto en relación con la física. Puede hacer metal = 1, y una rugosidad igual a 1, y además incluir un montón de otros parámetros, y esto no será materialmente correcto desde el punto de vista de la física, sino una vez basado en él y convertido por usted en su propio conjunto de parámetros. Es decir, al crear materiales basados en PBR, puede ignorar por completo las leyes de la física y crear un material que sea único a su manera.Por ejemplo, piedras dibujadas en su estilo. ¿Cuán físicamente correcto deberíamos mostrar material ficticio que no existe en la naturaleza?