El mapeo de baches y el mapeo normal son dos métodos diferentes para hacer lo mismo: crear la ilusión de textura de superficie a un modelo de computadora visual.
Estos métodos son útiles para saber si estás creando personajes de videojuegos o renderizando animaciones 3D.
Los mapas de baches imponen una imagen en escala de grises, por lo que las manchas oscuras aparecen más profundas y proporcionan contraste para «baches» más claros.»Los mapas normales utilizan una escala RGB para derivar normales vectoriales 3D a la superficie 3D. Esto engaña la luz renderizada para crear luces y sombras. Ambos métodos dejan la geometría sin cambios.
Conocer las diferencias entre estas dos técnicas puede ayudar a determinar cuál es la más adecuada para la aplicación en cuestión. Sigue leyendo para obtener más información sobre ambos para que puedas agregarlos a tu bolsa de trucos.
La Principal Diferencia Es la iluminación
El objetivo de ambos mapas es dar a una superficie la ilusión de textura en una superficie que no tiene textura. Esto es beneficioso para los videojuegos porque significa que la malla del modelo no necesita ser tan fina que capture físicamente todos los pequeños detalles como un mapa de desplazamiento.
El mapa crea esta ilusión al distorsionar la forma en que la luz renderizada interactúa con una superficie. Aquí también es donde el mapa de baches puede llegar a ser limitante, dependiendo del nivel de detalle que esté tratando de lograr.
- Un mapa de baches indica al renderizador qué áreas de una superficie son más brillantes y qué áreas son más oscuras, sin importar la dirección de la fuente de luz.
- Un mapa normal relaciona las normales de superficie artificiales con el resto del espacio 3D y dicta matemáticamente cómo interactúa la textura con la fuente de luz renderizada.
Por lo tanto, el resultado en ambos casos es que una forma geométricamente lisa parece tener una textura de superficie muy detallada. Sin embargo, el mapa de baches comienza a fallar cuando el objeto texturizado se ve desde diferentes ángulos. Es probable que la textura percibida no interactúe con la luz ambiental de una manera creíble.
Para entender esto más, echemos un vistazo a cómo funciona cada método para renderizar la textura.
Un mapa de Baches Utiliza Una Escala de grises Establecida para Manipular la Altura
Si creara un mapa de baches o simplemente mirara uno, verá una imagen en blanco y negro. No hay nada más. Esencialmente, el mapa utiliza esta escala de grises para indicar al motor de renderizado qué puntos son claros y cuáles oscuros.
- Las áreas negras en el mapa indican ubicaciones oscuras o «hundidas» en la superficie
- Las áreas blancas en el mapa indican ubicaciones resaltadas o «sobresalientes» en la superficie
- Y cada tono de gris entre ambos actúa en consecuencia.
La mayoría de los motores de renderizado hacen esto relacionando el tono de gris con el vector normal de la superficie. Dado que los vectores normales son la forma en que el motor de renderizado «ve» la superficie, esta es una forma de engañarla para que genere textura en una superficie realmente lisa.
La relación entre la escala de grises y la superficie normal es como tal:
- Negro = tangente a la superficie
- Blanco = normal a la superficie
Y cualquier tono de gris entre cambia el ángulo del vector normal. Esto es ingenioso porque permite que la imagen en escala de grises actúe como un traductor entre el diseñador de juegos humano, que ve una imagen en negro & blanco, y el motor de renderizado, que ve una imagen en términos de normales de superficie.
Ahora, como se mencionó anteriormente, hay un déficit en este método en lo que respecta a la iluminación. El mapa de baches establece una distribución normal de superficie fija. En otras palabras, solo crea efectos de iluminación locales. Solo le dirá al motor de renderizado qué áreas de la superficie son más oscuras que otras en relación con sí mismo.
Por lo tanto, el mapa de baches no proporciona el motor de renderizado suficiente para considerar de dónde proviene la fuente de luz global en relación con los detalles de una superficie. Esto podría llevar a una situación en la que las sombras de una superficie estén realmente frente a la fuente de luz, y los reflejos estén donde esperarías que estuvieran las sombras.
Si el usuario final ve sombras donde su ojo espera reflejos, puede encontrar que los gráficos son menos creíbles. Sin embargo, esto no significa que los mapas de baches sean totalmente obsoletos. Se pueden usar solos o en combinación con otros mapas para mejorar realmente la representación general. Hablaremos de algunas de las mejores prácticas en un momento, pero primero un poco sobre los mapas normales y cómo interactúan con la iluminación.
Un mapa Normal Utiliza RGB Para Manipular la Luz
Como hemos mencionado, los mapas normales tienen la capacidad de incorporar mejor la iluminación global en la textura de la superficie percibida de un objeto.
Lo hacen proporcionando al motor de renderizado una tercera pieza de información o canal de color para usar. En contraste, un mapa de baches técnicamente solo proporciona dos canales de color para usar; blanco o negro. La asignación normal utiliza la escala de colores RGB para calcular una superficie normal a partir de tres vectores componentes en lugar de dos. RGB, en este caso, significa:
- Rojo
- Verde
- Azul
Para entender esto mejor sin dar una disertación sobre álgebra lineal, volvamos rápidamente a pensar en mapas de baches por un segundo. El tono de gris esencialmente equivale al ángulo de un vector en relación con la superficie misma. Ese vector se compone de dos vectores componentes en el espacio de objetos cartesianos, uno en el eje tangente (negro) y otro en el eje normal (blanco).
Cuanto más cerca esté el color del negro en un lugar determinado, menor será el ángulo entre el vector normal y la propia superficie. Por el contrario, cuanto más cerca del blanco está la imagen, más cerca del vector normal ortogonal está.
Pero si estamos operando en el espacio 3D, ¿qué pasa con la tercera dimensión? Aquí es donde entran los mapas normales con RGB en lugar de escala de grises. Al igual que el mapa de baches, un mapa normal tiene un eje tangente y un eje normal, pero también introduce el eje bitangente. Y como hay un tercer eje, tiene que haber un tercer color para representarlo. La siguiente tabla ilustra cómo cada mapa traduce colores en vectores.
Eje Vectorial | Traducción de Color de Mapa de Relieve | Traducción de Color de Mapa Normal |
Normal | Blanco | Azul |
Tangente | Negro | Rojo |
Bitangente | N/A | Verde |
La clave para entender aquí es que el mapa normal tiene la capacidad de definir normales de superficie en el espacio global 3D porque hay tres componentes vectoriales que componen dicho normal. Cada uno de los componentes puede estar relacionado con los componentes globales X, Y y Z del espacio mundial cartesiano en el que se fija una fuente de iluminación.
Un mapa de baches no puede hacer esto porque no hay un tercer componente que relacione el espacio cartesiano normal con el global. Esta es la razón por la que puede terminar con reflejos donde esperaría sombras con mapeo de relieve.
Los tres componentes vectoriales de un mapa normal forman un sistema cartesiano, lo que significa que todos son ortogonales entre sí. Sin embargo, el sistema de coordenadas todavía puede orientarse en una cantidad infinita de direcciones y debe restringirse de alguna manera para que el mapa tenga sentido.
Esto se hace orientando los componentes vectoriales a las coordenadas de textura del mapa. Sin embargo, la mayoría de los software de renderizado y modelado 3D harán esto en segundo plano por usted, así que no hay problema si no estaba prestando atención en la clase de álgebra lineal. Por lo general, hay 3 orientaciones diferentes para elegir:
- Espacio tangente
- Espacio de objetos
- Espacio mundial
Cada uno de estos tiene sus ventajas y desventajas, dependiendo de la aplicación del objeto. Hablaremos de esto más tarde.
Independientemente de la orientación que se use, es un paso importante porque permite que el motor de renderizado calcule las normales de superficie de una manera que todas se relacionen entre sí sin problemas. El resultado es una textura superficial percibida que reacciona de manera uniforme a la fuente de luz global.
Así que esa es la gran diferencia. Ambos mapas afectan a la iluminación de una superficie, pero lo hacen de diferentes maneras. El mapa normal sobresale por su capacidad de relacionar una textura de superficie con el espacio 3D en el que reside. En última instancia, esto proporcionará renderizados más creíbles, aunque no es raro usar mapas de baches y mapas normales juntos para crear superficies altamente detalladas.
De nuevo, ninguno de estos métodos modifica realmente la geometría 3D de la superficie subyacente.
Una nota rápida sobre la Orientación Normal del mapa
Dado que los mapas normales determinan el ángulo en el que la luz se refleja en una superficie, es importante considerar cómo se orienta el mapa en relación con el objeto al que se aplica.
El espacio tangente Es Más Común
Cuando un mapa normal está orientado en un espacio tangente, sus normales de textura se almacenan en relación con la normal de geometría. Por lo general, este es el más versátil porque permite que el objeto se mueva y se deforme en el espacio, manteniendo intactos los efectos de la textura. Esto es particularmente útil cuando se texturizan cosas como:
- Piel de un personaje
- Textiles en movimiento
- Objetos que se mueven e interactúan con el usuario
Línea de fondo; use esto si el objeto que está texturizando se moverá en el espacio con el usuario.
El espacio de objetos Crea Una Mayor Calidad a Costa de Versatilidad
Un mapa normal orientado al espacio de objetos calcula sus valores normales en relación con el objeto en su conjunto. El objeto todavía puede moverse, pero si sus superficies se deforman puede haber problemas con lo normal. Por lo general, los mapas se adaptan específicamente al objeto al que se aplican, lo que permite obtener detalles más nítidos y un mejor suavizado.
Sin embargo, esto hace que sea difícil reutilizar o enlazar el mapa en otras superficies. Las coordenadas de textura tampoco se pueden reflejar. Por lo tanto, modelar texturas en objetos simétricos será el doble de trabajo.
El Espacio del mundo Crea Un Mapa Totalmente Fijo
Un mapa normal orientado en el espacio del mundo se fija en su lugar en relación con las coordenadas 3D globales. Esto significa que el objeto al que se aplica debe permanecer estacionario; de lo contrario se «salga» de debajo del mapa si se mueve.
Esto es bueno para crear altos niveles de detalle en objetos grandes y estacionarios de un entorno.
¿Qué Mapa Tiene Una Mejor Velocidad De Renderizado?
Aunque la velocidad de renderizado depende en gran medida del propio motor de renderizado, los mapas de baches y los mapas normales ocupan diferentes cantidades de memoria.
Normalmente, los mapas normales son más rápidos de renderizar que los mapas de baches.
La diferencia no es drástica, pero está ahí. Los mapas normales recortan ligeramente los mapas de protuberancia porque no requieren múltiples muestras de textura, como hacen los mapas de protuberancia.
¿Qué Tipo de Mapa debo Usar?
Como con cualquier otra cosa, no hay consenso unánime de que uno de estos mapas sea mejor que el otro. Los mapas de baches y los mapas normales tienen ventajas en diferentes aplicaciones. Exploremos algunos de estos.
Los mejores usos para el mapeo normal
Ya mencionamos algunos de estos cuando hablamos de las diferentes orientaciones de los mapas normales. En términos generales, los mapas normales son la solución más versátil cuando se necesita una textura que responda bien al movimiento. Esto puede aplicarse a casi cualquier cosa:
- Personajes
- Armas / herramientas / objetos
- Vehículos
- Textiles
- Follaje
Los mapas normales también son útiles para traer detalles a partes del entorno que se espera que se vean de cerca.
- Paredes
- Pasarelas
- Señalización
Los mapas normales son extremadamente versátiles, especialmente con orientación espacial tangente. También se envuelven alrededor de los bordes para crear un efecto de biselado favorable, algo que los mapas de relieve no pueden hacer. Esto suaviza los bordes afilados de otro modo en un objeto que no debería tener bordes afilados, lo que hace que la imagen sea más creíble.
Esto no alcanza el mismo nivel de detalle que un mapa de desplazamiento (que tocaremos brevemente al final de este artículo), pero al menos crea la ilusión de bordes redondeados en cosas como:
- Pomos de puerta
- Manijas de armas
- Esquinas de pared
Este efecto sutil no se puede lograr con un mapa de baches.
Los mejores usos para mapeo de topetones
Los mapas de topetones se utilizan mejor para superficies de fondo u objetos relativamente pequeños. Piense en las características ambientales que deben percibirse a la distancia.
- Sala de operaciones
- Paisajes
- Paisajes urbanos
Dado que los mapas de baches no funcionan tan bien como los mapas normales en objetos en movimiento, son fácilmente aplicables al fondo de una escena o a aspectos de nivel medio de detalle. Dado que son más fáciles de crear y no requieren tanto cálculo vectorial, son la opción de menor esfuerzo.
Sin embargo, cuando se aplican a partes de un entorno que no estarán bajo tanto escrutinio, los mapas de baches dan la mayor cantidad de dinero por su proverbial dinero.
También se pueden usar juntos
No olvide que los mapas de topetones y los mapas normales se pueden superponer para crear aún más profundidad de detalle en su renderizado.
Al igual que con cualquier mapa de texturas, puede superponer tantas o tan pocas capas como desee para lograr el nivel de detalle deseado.
- Bump maps ajusta la altura percibida de una superficie en relación con sí misma
- Normal maps Ajusta el ángulo percibido en el que la luz se refleja en la superficie
Combine estos dos para equilibrar los beneficios de la manipulación de la altura y el ángulo de su superficie.
Para Resumirlo.
La diferencia entre un mapa de baches y un mapa normal es cómo cada uno manipula una superficie para interactuar con la luz. Los mapas de topetones funcionan en «dos dimensiones» mediante el uso de una escala de grises para mover artificialmente partes de una superficie hacia arriba o hacia abajo. Moverse hacia arriba significa más brillante, y moverse hacia abajo significa más oscuro.
Los mapas normales funcionan en «tres dimensiones» mediante el uso de canales de color rojo, verde y azul para manipular artificialmente la dirección en la que la luz se refleja en una superficie.
Los mapas se pueden usar juntos o individualmente, y ninguno de los mapas de texturas altera la geometría de la superficie. Mientras que los mapas normales pueden envolver los bordes para crear un efecto de bisel, estos dos mapas carecen de la capacidad de producir la ilusión de textura a lo largo de un borde.
Bonus: ¿Qué Pasa Con Los Mapas De Desplazamiento?
Si necesita renderizar los bordes de una superficie para que la silueta del objeto coincida con la textura, un mapa de relieve o un mapa normal no lo cortarán.
La ventaja de los mapas de baches y los mapas normales es que crean la ilusión de textura sin alterar realmente la malla de la superficie. Esto significa que el tamaño del modelo puede permanecer pequeño, y el tiempo de renderizado sigue siendo bastante rápido. Pero esto limita la cantidad de detalles en los bordes de los objetos.
Aquí es donde entran los mapas de desplazamiento. Considere el ejemplo de una pared de ladrillos. Los ladrillos sobresalen en relación con el mortero que los mantiene unidos. Así que, si estás buscando alrededor del borde de este rincón, no parecería ser una línea recta, los ladrillos debía sobresalir, y el mortero se retiraría.
Ni los mapas normales ni los mapas de baches pueden lograr esta ilusión, y sería una tarea tediosa sentarse allí y modelar todos esos ladrillos. Sin mencionar que haría que tu modelo 3D fuera bastante torpe.
Aquí es donde entra en juego el mapeo de desplazamiento. Como un mapa de baches, ajusta la altura de una superficie. Pero en lugar de manipular la iluminación, manipula la forma real del objeto cuando se renderiza. Debido a esto, requiere más tiempo de renderizado y una malla mucho más fina en la superficie. Por ejemplo, la superficie más grande debe dividirse en cientos, probablemente miles, de superficies individuales.
Esto vale la pena, si el motor de renderizado es lo suficientemente potente y se necesitan los detalles.
A continuación se muestran algunos videos útiles para mostrar estos conceptos visualmente:
Mapeo de baches: