Esta es la norma - 3: tipos de mapas normales

Parte 1: qué son los mapas normales y cómo funcionan

Parte 2: cómo se hornean los mapas normales

Al igual que muchas otras cosas en nuestra industria, los mapas normales han evolucionado a lo largo de los años, y hoy en día existen varios tipos que pueden verse diferentes. En el artículo enumeraré los que recuerdo, pero tal vez hay otros.

Mapa de las normales del espacio tangente (mapa normal del espacio tangente): el tipo más común hoy, mapas normales; de eso hablamos en artículos anteriores. Modifica la dirección de las normales del modelo en función de la dirección de las normales de sus vértices (es decir, necesitamos controlar las normales de los vértices del modelo lowpoly).

imagen

Mapa normal del espacio tangente Mikk (mapa normal del espacio tangente Mikk). No todos los editores 3D calculan el promedio de vértices normales de la misma manera. Esto lleva al hecho de que la apariencia de los mapas normales es diferente en diferentes motores, por lo que necesitamos hornear el mapa normal usando el mismo método que usa el programa de renderizado (esto se llama "usar un flujo de trabajo sincronizado ( flujo de trabajo sincronizado )")

Mikk propuso una forma de calcular las normales de los vértices, que se suponía que era universal para que todos los programas las calcularan de la misma manera. Desde el punto de vista del flujo de trabajo, esto significa que puede usar el modelo de baja poli con todas sus normales promediadas (con un grupo de suavizado o con el suavizado de todas las caras), hornee el mapa normal en el espacio tangente de Mikk, y se verá exactamente Al igual que un modelo de alta poli, sin la necesidad de eliminar errores de suavizado o separar bordes duros en UV. En el futuro escribiré un tutorial sobre cómo hacer esto.

Recuerde que esto sigue siendo un mapa de las normales del espacio tangente, pero las normales del modelo se calculan de manera universal y los modelos se pueden usar en diferentes programas.

imagen

Dos -channel espacio tangente mapa normal: resulta que el uso de la información almacenada en dos de los tres canales del mapa normal, el ordenador puede calcular el tercero, lo que reduce el consumo de memoria a costa de aumentar el número de cálculos. Debido a que la memoria es generalmente escasa, esta optimización se usa con frecuencia y algunos motores la ejecutan automáticamente (por ejemplo, Unreal Engine, cuando establecemos el parámetro "mapa normal" para comprimir la textura normal). Habiendo liberado un canal del mapa normal, podemos reducir el tamaño de la textura o usar este canal para metalidad / rugosidad / opacidad ...

Normalmente, el canal azul del mapa normal se elimina, por lo que estas texturas se ven amarillas. Dado que esta optimización a veces se realiza automáticamente por algunos motores, puede notar tales texturas en su proyecto.

imagen

Mapa de las normales del espacio mundial (mapa de la normalidad del espacio mundial): esta carta es normal, en lugar de modificar la dirección de las normales del vértice, las ignora por completo y cambia la forma de reflexión de la luz del modelo lowpoly en el espacio mundial (espacio mundial) (cuando se hornea, considera que las normales de los vértices paralelo a los ejes del mundo).

Podemos decir que el mapa normal del espacio tangente le dice al modelo "debe reflejar la luz a la derecha", y el mapa normal del espacio mundial: "debe reflejar la luz hacia el este".

imagen

Tales mapas normales son más coloridos y tienen gradientes más notables; se usaron porque en este caso no es necesario pensar en las normales de los vértices de lowpoly, pero tienen un inconveniente: no se puede mover el modelo porque se verá extraño (configuramos la cara para que siempre refleje la luz hacia el este. Si la rotamos, entonces el borde continuará reflejando la luz hacia el este).

imagen

Hoy en día, las normales del espacio mundial rara vez se usan en los juegos, pero aún se pueden usar para crear hermosas texturas, por ejemplo, el canal azul muestra cómo el modelo debe reflejar la luz que cae sobre el modelo, por lo que puede usarlo para agregar iluminación de color a la textura.

También vale la pena recordar que las coordenadas mundiales en diferentes aplicaciones se implementan de manera diferente: en Unreal, 3D Studio Max, Blender, el eje Z se dirige hacia arriba, y en Maya, Modo y Cinema4D, se dirige el eje Y. Esto significa que cuando se transfieren normales mundiales entre aplicaciones Los espacios pueden deteriorarse.

Objeto Espacio Mapa Normal(Mapa normal del espacio de objetos): esta es una versión mejorada del tipo de mapa anterior, y es muy similar. La idea es que cuando mueves un modelo en el mundo, su mapa normal del espacio mundial debe reorientarse en relación con el objeto.

Esto se puede describir como "esta cara debe reflejar la luz a la derecha del modelo". Si gira el modelo en el mundo, entonces el mapa normal debería cambiar de acuerdo con estos cambios. Sin embargo, esto no funciona con mallas deformables, porque en tales mapas solo se tiene en cuenta el movimiento del objeto. Es por esta razón que los mapas normales del espacio tangente son más comunes hoy en día.

Mapas normales inclinados(Mapas normales doblados): en esencia, combinan información de AO y mapas normales, inclinando las direcciones de las normales para que la luz tienda a reflejarse en aquellas partes del modelo que golpea la luz.

Dichas tarjetas se utilizan para mejorar la Oclusión Ambiental y para evitar el efecto llamado "fuga de luz", en el que el modelo puede reflejar la luz en partes que no puede alcanzar. Personalmente, nunca los he usado, pero habría explorado sus capacidades si hubiera encontrado una notable "fuga de luz". Se puede encontrar más información aquí , aquí y aquí .

Mapas normales de 16 bits(Mapas normales de 16 bits): a veces, cuando hay un gradiente muy suave en el mapa normal, podemos notar la aparición de rayas. Estas rayas se deben a la falta de colores para representar un degradado suave, generalmente causado por la compresión de la textura.

Pero en el caso de una superficie grande y lisa, tales problemas pueden surgir incluso con una textura sin comprimir. En tal situación, puede usar mapas normales de 16 bits, generalmente en archivos .tga, que tienen más colores y son más grandes que los mapas normales normales de 8 bits.

Puedes obtener más información sobre los mapas normales de 16 bits en el tutorial dios mismo - Terremoto .

imagen

imagen

También se debe tener en cuenta que existen otras técnicas para reducir las consecuencias de este problema, por ejemplo, eliminar completamente los mapas normales (solo se utiliza la geometría para representar esta superficie lisa), transformando lowpoly para que se vea más como highpoly para que los gradientes sean menos notables, o el uso de tramado.

Entonces, ¿qué tipo debemos usar?

En el 90% de los casos, la mejor solución son los mapas normales del espacio tangente Mikk. A diferencia de las opciones que usan mapas normales del espacio del mundo o de un objeto, el modelo podrá deformarse y la dirección de las normales seguirá siendo correcta.

Debe hornear el mapa normal en el mismo espacio tangente que en el programa de representación. El espacio tangente más común es Mikk, así que úselo siempre que sea posible.

Si aparece pixelación en su mapa normal, considere usar 16 mapas normales o una de las soluciones mencionadas anteriormente.

De hecho, estos son todos los tipos de mapas normales que puedo recordar. Si conoce otros tipos, ¡hágamelo saber y los agregaré a este tutorial!

Gracias por leer, espero que el artículo te haya sido útil. Gracias a Shnya por sus comentarios y ayuda.

Source: https://habr.com/ru/post/undefined/


All Articles