lunes, 26 de diciembre de 2016

Texturización. Nuestro pipeline.

En esta entrada explicaremos nuestro pipeline cuando hacemos un modelo 3D en blender. No os vamos a descubrir ningún misterio si sabéis algo del tema, pero ya que no os podemos contar más detalles del nuevo proyecto porqué, como ya sabéis, trabajamos en nuestros ratos libres, nos parece buena idea comentar cualquier tema que pueda interesarle a alguien.

Lo primero de todo, necesitamos el modelo en 3D. Un modelo en 3D nunca está finalizado hasta que no esté posicionado en las coordenadas (0, 0, 0) y con su UV hecha.

Lo de las coordenadas es para poder mover el modelo de un programa a otro sin tener sustos de posicionamiento. Por ejemplo, cuando importamos un objeto a unity y queremos aplicarle alguna funcionalidad, puede ser de vital importancia que sus coordenadas no vengan con algún desfase heredado, ya que programar algún comportamiento se puede convertir en una auténtica tortura. Este punto lo desarrollaremos un poco más en un artículo futuro, ya lo veréis :).

La UV es necesaria, a parte de para "pintar" el modelo, para cuando exportemos e importemos el modelo. Ya que se llevará consigo esa información y así podremos aplicarle la textura que queramos en cualquier software.

Pero, ¿qué es una UV? Pues es el modelo en 3D "abierto en canal" para poder texturizarlo en un editor de imágenes (como photoshop, gimp, etc) o incluso desde el propio blender, si tenéis cierta maña para pintar encima.

Lo más importante es saber donde hacer los cortes para que en la malla desplegada resultante se vean lo menos posible esas juntas. Para un modelo sencillo como una caja, no hay mucho misterio, pero para un modelo más o menos complejo, es relevante encontrar la mejor manera de hacer esos cortes y a la vez enfatizar esas partes donde es más importante tener más resolución. Por ejemplo, para un personaje, dependiendo de su finalidad, podría ser muy interesante que la parte de la cabeza ocupe más espacio en la UV que el resto del cuerpo, ya que va a tener más detalle.

No nos extenderemos en como se hace una UV porqué hay miles de tutoriales por internet y tampoco somos unos gurús del tema, pero solo con hacer una simple búsqueda en google, podremos ver ejemplos de distintos modelos. También podréis encontrar información en la página de unity sobre UV que puede ser interesante.

Ahora sí, lo que os queríamos comentar era nuestro itinerario una vez hecho el modelo en 3D.

A diferencia de con el Torii, "colorearemos" los modelos de distinta forma. Ya avanzamos en el primer tip del blog por donde irían los tiros hablando de los atlas de color. Para nuestro nuevo proyecto hemos decidido simplificar el proceso. En vez de crear una imagen para cada modelo, crearemos una imagen base y la usaremos en todos los modelos.

Podríamos ir a lo bruto y no molestarnos en hacer las UV, coloreando directamente los polígonos, pero si más adelante cambiamos la manera de hacerlo, tendríamos que hacer todas las UV de golpe y sería demasiado tedioso. Realmente no se notaría la diferencia de si hacemos correctamente la UV o no, pero es más por un tema de orden y limpieza.

Así que una vez terminamos de modelar, hacemos la UV y distribuimos los trozos de esa UV que nos interesen en los colores que creamos de nuestro atlas de color.

Por ejemplo, si tenemos como modelo un coche, crearemos su UV haciendo los cortes en la malla correspondientes y pondremos el chasis en el rojo, las ventanillas en el azul claro, las gomas de las ruedas en el negro, etc.

Pero como una imagen vale más que mil palabras, os mostramos como quedaría la UV de un macetero con el atlas de color que hemos realizado para tener todos los colores básicos en un solo archivo:
UV y atlas de color de un modelo sencillo.


De momento hemos decidido que crearemos varios atlas de color. Usaremos uno base para todo donde estarán todos los colores genéricos (rojos, azules, verdes, amarillos, etc). Pero además creemos que estaría bien tener atlas específicos para zonas concretas de la ciudad o incluso modelos. Por ejemplo, tener un atlas de color de todos los verdes posibles para las zonas de bosque, ya que si usamos el atlas base, nos faltarían tonalidades. Y aprovechando esta situación, donde tendremos las UV's de los árboles posicionadas, podríamos cambiar el atlas de color de tonos verdes por uno de tonos naranjas para los árboles de otra zona y cambiarlo todo de golpe sin necesidad de rehacer las UV's. It's magic!

Aplicando esta manera de trabajar, podemos crearnos un atlas (o los que necesitemos) para añadir texturas más complejas a los modelos. Por ejemplo, podríamos tener un atlas para las señales de tráfico, donde en vez de colores tendríamos las imágenes de los stops, límites de velocidad, etc.

Evidentemente, todo esto es factible hacer si el estilo que se le quiere dar al juego acompaña. En nuestro caso, seguimos con el estilo cartoon, por tanto, podemos permitirnos el lujo de crear una textura con colores planos. Incluso para nuestro atlas de señales de tráfico, el pupurri de imágenes no desmerecerá el resultado final, ya que no es necesario que tenga miles de píxeles de resolución porqué se verá desde lejos.

Para acabar con el artículo, os dejamos nuestro primer atlas de color para que podáis utilizarlo si os gusta :).
Atlas de color de Un juego a ratos.
De momento, eso es todo en cuanto a texturización. Cuando haya más novedades en un futuro, os las contaremos. Y, por favor, si tenéis cualquier pregunta o queréis hacer alguna aportación o corrección, no dudéis en comentar, ya que nosotros también estamos aprendiendo a base de prueba y error :).

No hay comentarios:

Publicar un comentario