Blog.png
  • Pablo Carbajo

Materiales en arte 3D: Mapeado

Los materiales en la realidad pueden llegar a ser muy complejos, con muchas variaciones e imperfecciones. Aplicando el mismo color, brillo o rugosidad a toda la superficie de un objeto conseguimos superficies completamente homogéneas, lo cual no resulta nada realista.



Para solucionar este problema se utilizan texturas. Las texturas son simplemente imágenes que usamos para proyectar sobre el modelo. Estas texturas pueden aplicarse en cualquiera de los parámetros que veíamos en la introducción a los materiales PBR. La más obvia sería el Base Color, donde la textura aporta las diferentes variaciones en color que se producen en el material.



Pero la variación en color no es lo único importante, la rugosidad o incluso la reflectividad de un material pueden variar también. Cuando se trata de estas propiedades que se ajustan con un valor de 0 a 1 lo que se hace es traducir la escala de grises a valores numéricos. Así una textura en blanco y negro tiene valores de 1 donde la imagen es blanca y de 0 donde es negra. Dependiendo de lo claro u oscuro de los grises intermedios tendrán un valor entre 0 y 1.



Ya vemos que las texturas aportan grandes ventajas pero también conllevan más trabajo. Como ya no estamos aplicando un valor constante necesitamos establecer de alguna forma cómo se van a aplicar las texturas a nuestro modelo. Esto no es automático, incluso si pensamos en un objeto sencillo como una caja, la diversidad de maneras en que podemos proyectar la textura es infinita teniendo en cuenta que podemos variar la posición, rotación y escala de la textura.



El mapeado es la forma en que definimos cómo se proyectan las texturas sobre nuestro modelo. Para ello lo que se hace es desplegar el modelo 3D en dos dimensiones. Como si cortáramos en trozos toda la superficie del objeto y los extendiéramos en una superficie plana. Esa superficie plana en nuestro programa 3D recibe el nombre de espacio UV, donde la U sería la coordenada X y la V la coordenada Y. Este espacio en dos dimensiones nos permite colocar nuestra textura y "pintar" los trozos desplegados de nuestro modelo.


Mapas de Normal y Bump


Antes de avanzar con el mapeado UV vamos a ver un parámetro que no vimos en la introducción a los materiales PBR porque todavía no habíamos introducido el concepto de texturas. El normal y el bump map no tienen sentido si no se aplican en forma de textura, sirven para simular detalles superficiales.



Empezando por el más sencillo, el bump map es una imagen en escala de grises donde las zonas blancas simulan volumen que sobresale de la superficie original y las zonas negras simulan valles. No modifican la malla del modelo, sólo simulan volumen generando sombras y luces en el renderizado. Como es simulado, se utiliza sólo para pequeños detalles superficiales, si no se haría evidente el truco en los contornos y siluetas del objeto.



El normal map viene a ser lo mismo pero en RGB, siguiendo un código de color que permite almacenar más información que el bump map. Esto hace que sea un poco más preciso, ya que indica la orientación exacta de cada punto en vez de sólo la altura. Es muy común en videojuegos porque permite simular pequeños detalles superficiales de forma muy eficiente. Si éstos tuvieran que ser modelados reducirían drásticamente el rendimiento del juego. Recordemos que cuantos más vértices tenga el modelo mayor tiempo de render.


Mapeado UV


El unwrap (en español desenvolver) es el proceso de desplegar el modelo en dos dimensiones. Se compone de 2 grandes pasos: especificar por qué aristas del modelo vamos a cortar y después extender y colocar los trozos (el término correcto sería islas) en el espacio UV. Como esto puede ser un proceso complicado suelen existir métodos rápidos de unwrap que nos sacan del paso en los casos más sencillos. Éstos consisten en utilizar formas primitivas para proyectar las texturas, como son el cubo, la esfera y el cilindro.


A la hora de definir las costuras del modelo se han de tener en cuenta las siguientes consideraciones:


  • Seguir las costuras que tendría el objeto en la realidad, siempre que sea posible. Un ejemplo muy claro es un objeto tapizado como podría ser un asiento de coche. Como en la realidad el objeto tiene costuras, aprovechamos éstas para definir los distintos "patrones" del modelo 3D.

  • Colocar las costuras complicadas en partes que no vayan a tener mucha visibilidad en nuestro render o animación.

  • Evitar distorsiones. Éstas se producen cuando intentamos desplegar la malla de un objeto complejo sin las suficientes costuras. Si por ejemplo intentamos desplegar una esfera con una única costura que une los polos, el resultado saldrá con distorsiones en los polos debido a que necesitan ser estirados para poder aplanarlos.

  • Mantener al mínimo las costuras. Es mejor evitar añadir costuras innecesarias, ya que son zonas conflictivas para el texturizado.



En resumen, se trata de colocar las costuras de la forma más natural posible, evitando que queden cortes indeseados en las partes más visibles del modelo. Además hay que encontrar un compromiso entre mantener las islas lo más grandes posible y evitar distorsiones.

1 vista0 comentarios

Entradas Recientes

Ver todo