El UVW Unwrapping es un arte, de la misma forma que el modelado, el rigging o la animación; es un mundo por sí solo. De manera que hay que irlo puliendo de a poco, y practicando con distintos tipos de objetos, siempre, yendo de menos a más.
No te desanimes si no logras comprender todo de primera ya que éste es un tema que requiere bastante estudio.
Dejando en claro eso, en las siguientes líneas intentaré explicar lo básico para que puedas comenzar a experimentar con tus propios modelos.
Este tutorial está armado desde la perspectiva de 3ds Max, pero presenta el punto de partida para cualquier tipo de aplicación que permita trabajar con UV’s.
Puedes pinchar sobre cada imagen para verla en su tamaño original, y no olvides revisar el video al final del post.
Qué es el UVW Unwrapping
Cada modelo 3D está compuesto por una serie de puntos situados en el espacio llamados vértices (vertices), los que se conectan para formar aristas (edges), que a su vez dan origen a las diferentes caras del objeto (polygons). El conjunto que forman todos estos elementos reunidos se denomina malla (mesh).
Si piensas en la malla como una escultura, todo aquello que corresponde a colores, dibujos, detalles, y básicamente cualquier tipo de información gráfica aplicada sobre ella, se denomina textura.
Ahora bien, todas las texturas trabajan en base a un plano cartesiano (con sólo dos dimensiones), utilizando las coordenadas de los ejes X e Y. Por ende, para poder aplicar una textura sobre un modelo es necesario que exista algún mecanismo de comunicación que permita proyectar estos datos sobre la malla, pasando del espacio 2D, al espacio 3D.
Para que una textura plana pueda envolver un objeto tridimensional, es necesario “aplanar” virtualmente el cuerpo volumétrico, algo así como desarmar una caja (animación superior). De esta manera, se presenta toda la geometría en sólo dos dimensiones, con los valores de “U” para las coordenadas en el eje X, y los de “V”, para las del eje Y. La “W” representa el eje Z, utilizado en la generación de texturas 3D. Es un parámetro que puede ser multiplicado por la matriz de la textura para agregar información adicional para animación, referente a la posición, rotación, o escala (por ejemplo, rotar la textura para simular movimiento de un objeto sobre ella, sin que éste se desplace realmente). Esto último se utiliza más en la creación de videojuegos.
El UVW Mapping es la manera en que una textura debe ser desplegada sobre un objeto. El proceso de mapeo UV consiste en asignar pixeles desde las imágenes a la superficie de los polígonos.
Este proceso puede ser llevado a cabo de manera automática, trabajando con proyecciones en base a geometría primitiva, como un plano, un cilindro, una esfera o un cubo, o en forma manual.
Si bien la primera opción es bastante útil, suele ser también limitada, ya que puede generar una serie de problema de distorsión, y no tiene mucha utilidad para mapear cuerpos complejos. Aquí es donde entra el UVW Uwrapping, o Unwrap UVW.
Lo que hace el UVW Uwrapping es básicamente desenvolver (wrap = envolver y un-wrap= desenvolver) la geometría, estirándola sobre un plano, y presentándola de manera simple, para que puedas trabajar sobre ella . Es una técnica matemática que se utiliza para el mapeo de mallas complicadas, como rostros, reduciendo al mínimo cualquier tipo de estiramiento o deformación.
El UVW Unwrapping trabaja codo a codo con la geometría de los objetos, es por ello que, mientras más limpio sea tu modelo, mejor será el resultado de tu unwrap, y más simple el proceso de mapeo.
A continuación veremos un ejercicio simple de UVW Unwrapping, para que puedas comenzar a experimentar por tu cuenta.
En primer lugar insertaremos una tetera, con un radio de 10 cm.
Luego, en el menú de materiales, crearemos un nuevo material, asignando una textura tipo Checker en la casilla de Diffuse, con Tiling = 5, y lo aplicaremos a nuestra tetera.
A partir de aquí, seleccionamos nuestro objeto y le damos un Unwrap UVW modifier.
Como podrás ver en la imagen siguiente, si bien la textura sigue una lógica ordenada, el tamaño de los cuadrados no es uniforme (en la base son más grandes que en la parte superior de la tetera). Esto es lo que debemos arreglar con el unwrapping.
Las líneas verdes que aparecen sobre el modelo corresponden a las costuras, o “seams”. La idea es disminuir su presencia al mínimo posible.
Las costuras representan el punto de unión de la textura. A medida que cambiamos el Tiling, o tamaño del mapa, varía también la escala de la imagen, generando un conflicto a lo largo de este encuentro, ya que es en la costura donde comienza y termina la textura; la única manera de hacer completamente invisible la unión es mediante la técnica de pintado por proyección, es decir, pintando directamente sobre el modelo, en una aplicación como ZBrush o MARI.
Piensa en un cojín o una prenda de vestir, que por lo general tienen las costuras en zonas poco visibles, ya sea en el interior, o donde se produce cambio de geometría.
A modo de regla general, intenta que tus costuras siempre queden en lugares poco conflictivos, de preferencia ocultas en pliegues, o escondidas de la cámara.
Como explicaba al comienzo de este post, el modificador Unwrap UVW, al igual que el UVW Map, permite utilizar 4 tipos automáticos de mapeo, que son el planar, el cilíndrico, el esférico y el cúbico. Esta herramienta puede ser usada en un comienzo para facilitar un poco el proceso del unwrapping posterior. Por ejemplo, utilizando el modo cilíndrico para trabajar un brazo, o el cúbico, para un pie.
Cada uno de los modos de mapeo, permite alinear la proyección de la textura siguiendo alguno de los ejes X, Y o Z, además del Best Align, o “mejor alineamiento” (automático), y View Align, o “alineamiento según vista” (depende del Viewport). También, dan la opción de ajustar la proyección al tamaño del objeto (Fit), centrarla (Center) y resetearla (Reset).
Comencemos con el modo planar.
Al utilizar un plano como método de proyección, lo que hacemos es básicamente generar las coordenadas de mapeo siguiendo una vista (planta o elevación), la cual va a depender del eje que estemos considerando para ello: ejes X e Y para vistas laterales, y eje Z para vista superior, o inferior.
Si luego de definir nuestra proyección, hacemos click donde dice “Open UV Editor” se abrirá una nueva ventana, que corresponde al espacio donde iremos trabajando nuestro mapeo.
Como puedes ver en la imagen de más abajo, el mapeo se crea siguiendo la vista superior (Z), para cada una de las partes de la tetera, y si bien parece correcto, no lo es, ya que al mirar desde arriba, desaparecen todas las coordenadas que entregan información sobre lo que ocurre en la caras laterales de nuestro objeto, produciendo estiramiento (ver recuadro en la imagen de más arriba).
Ahora revisemos el método de proyección cilíndrico.
Como su nombre lo indica, este modo proyecta la textura siguiendo la forma de un cilindro, generando una costura vertical, una circular superior y una circular inferior, para separar las caras horizontales que rematan el cuerpo geométrico.
Así sería la proyección resultante en el UV Editor.
Si bien este camino podría ser útil para comenzar a mapear nuestro objeto, las costuras aserradas que genera en la unión vertical, sumado a la distorsión radial presente en la cara inferior y superior, lo hacen un candidato difícil de elegir.
Veamos el siguiente método, la proyección esférica.
El método de proyección esférico da como resultado un mapeo similar al que veríamos si desarmaramos un globo terráqueo, envolviendo la malla y uniéndola a lo largo de una línea vertical, terminando en los vértices inferior y superior.
La proyección esférica es de utilidad cuando necesitamos mapear objetos como ojos, planetas o pelotas.
Por último veremos el modo cúbico.
Probablemente sea el más utilizado de todos, ya que se ajusta a un gran número de mallas, pudiendo ser aplicado a elementos como sillas, mesas, puertas, muros, etc.
Este método trabaja en base a las 6 caras de un cubo, generando 12 costuras.
Ahora que ya tenemos una visión general de como operan los diferentes tipos de mapeo automático, revisaremos más en detalle algunas de las principales herramientas en la paleta del modificador Unwrap UVW.
El punto 1 tiene que ver con la geometría de la proyección.
Al igual que un objeto 3D, las texturas se posicionan siguiendo coordenadas, relacionándose directamente con la malla que envuelven mediante vértices, aristas y caras. El mapa puede ser modificado a partir de cualquiera de estos elementos, moviendo, rotando o escalando la proyección.
Vale la pena recordar que el espacio que ocupa la textura NO ES EL MISMO que utiliza el modelo, por ende desplazar o girar un vértice no producirá cambios en la geometría del objeto, solo afectará la manera en que se despliega la imagen.
En el punto 2, la letra A representa lo mismo que mencionaba más arriba. Corresponde a las maneras para seleccionar los elementos del mapeo: vértices, aristas y caras.
El recuadro “Select By Element XY Toggle” permite seleccionar el elemento completo, de la misma forma que la opción “Element” (Editable Poly) para seleccionar geometría en un objeto.
Los dos primeros recuadros de la letra B son para hacer crecer o encojer el área de la selección (primera imagen de abajo), al igual que el “Grow” y “Shrink” en la barra de herramientas de Editable Poly. Lo mismo ocurre con las siguientes dos opciones. Loop es para continuar la selección, siguiendo la orientación de una arista, y Ring es para seleccionar en forma paralela, como un anillo (segunda imagen de abajo).
En la pestaña “Select By”, o letra C, el primer recuadro (Ignore Backfacing) permite ignorar la selección de los elementos posteriores de un objeto, o aquella geometría que no ve la cámara.
“Point-to-Point Edge Selection” selecciona el camino más corto entre dos puntos, y “Select by Planar Angle” se utiliza para la selección en base a un ángulo máximo de relación con respecto al polígono elegido.
Las últimas dos opciones no las veremos en este tutorial, ya que su uso es más específico.
La barra de herramientas del punto 3 contiene el botón para abrir el editor de UV’s, y un segundo botón para activar la edición en el Viewport, pudiendo mover, rotar o escalar la proyección directamente desde la vista.
Finalmente, el número 4, que ya lo explicamos más arriba, entrega opciones de proyección automáticas, que pueden ser de utilidad para comenzar el proceso de mapeo.
A continuación, veremos cómo funciona el UV Editor.
De la misma manera que el Viewport representa tu espacio para trabajar en 3 dimensiones, el UV Editor, es la superficie para tu trabajo bidimensional.
El área que engloba el recuadro de la imagen superior corresponde a todo lo que es visible en la proyección; más adelante, cuando expliquemos cómo guardar tus mapas, verás que aquello que se almacena será exclusivamente lo que está dentro de los límites de este espacio.
Volviendo al modelo de la tetera…
El tamaño de las diferentes secciones que forman tu mapeo, en el área de trabajo del Editor UV, está directamente relacionado con la resolución de tu uwrap; mientras más grande sean los recortes, mayor será la resolución final, y viceversa. Es debido a esto que siempre debes intentar ocupar toda el área disponible, acomodando cada elemento de la mejor manera posible, sin salirte de los bordes del espacio de trabajo.
En las imágenes siguientes puedes ver la diferencia que produce en el modelo el escalamiento del unwrap.
Ahora aprovecharemos de explicar cómo funcionan las herramientas más utilizadas del UV Editor.
De la misma forma que puedes seleccionar los diferentes elementos de la proyección desde el modificador Unwrap UVW (vértices, aristas y caras), también puedes hacerlo desde el UV Editor, de manera individual, o como elemento. Además, también tienes la opción de expandir o encojer la selección, aplicar un Loop, o un Ring, y seleccionar elementos mediante el pintado, pudiendo escojer el tamaño de la brocha y la suavidad.
En la parte superior izquierda verás la siguiente paleta de herramientas, desde donde podrás mover, rotar, escalar, deformar y espejar tu selección.
Hacia el lado opuesto verás opciones para activar o desactivar el patrón tipo Checker del fondo del área de trabajo, cambiar el espacio de UV a VW o UW, modificar los colores, visualización y selección de los elementos en pantalla, y finalmente elegir una textura de tu colección.
La pestaña “Quick Transform” permite realizar algunas transformaciones básicas a tu selección, como trasladar el pivote, alinear de manera horizontal o vertical, rotar en 90°, o alinear con referencia a los bordes del espacio UV.
Debes saber que cada vez que aplicas el modificador Unwrap UVW deberás posteriormente relajar los UV’s, ya que muchas veces la proyección se genera con algún grado de distorsión. Es algo así como estirar lo mejor posible las sábanas de una cama, para eliminar deformaciones producto de arrugas o pliegues.
Justamente para esto sirve la siguiente pestaña “Reshape Elements”.
El primer recuadro, “Straighten Selection”, enderezará por completo tu selección (se aplica sólo a selección por caras), generando un rectángulo, pero deformando levemente la proyección, lo que no es necesariamente es algo negativo, si sabes utilizarlo a tu favor.
Revisa las siguientes dos imágenes, con un ejemplo sin enderezar, y uno corregido.
“Relax Until Flat” relajará tus UV’s de manera rápida. Personalmente nunca lo utilizo, porque la siguiente opción permite un mejor control.
“Relax: Custom” posiblemente sea la herramienta más utilizada en el editor. Lo que hace, básicamente, es relajar los UV’s según ángulos. Sí pinchas sobre este recuadro, y mantienes presionado, se desplegara una submenú, el cual te llevará a la siguiente ventana. Aquí, puedes ir jugando con la opción “Relax By Polygons Angles” y “Relax By Edge Angles”, hasta relajar completamente tu geometría. Los valores para “Iterations”y “Amount” simplemente harán más lento o rápido el proceso.
Para entender mejor todo lo mencionado, revisemos un ejemplo.
Como puedes ver en la imagen de arriba, claramente tenemos un problema con los UV’s, ya que las proporciones del mapeo no se condicen con las de la geometría del cilindro. En este caso, lo que debemos hacer es relajar, usando la opción “Relax: Custom” (siempre trata de relajar cada elemento de manera individual, ya que si la selección es muy grande pueden surgir errores).
Si a continuación aplicamos un “Relax By Polygons Angles”, tendremos como resultado lo siguiente, que en este caso, es el mapeo corregido; observa que al relajar los UV’s desaparece el estiramiento.
Ahora bien, puede ser que al realizar el Relax obtengas algo parecido a la imagen de abajo, con proyecciones sobrepuestas y en diferentes escalas, lo que no significa que no hayan sido relajadas, sino que simplemente necesitas regularizar su tamaño. Para ello, saltamos a la pestaña “Arrange Elements”.
Esta pestaña permite reorganizar los UV’s en tu espacio de trabajo, escalando cada elemento en relación a la geometría del modelo. Es lo que denomina “Packaging”.
La opción más común es la de “Pack: Custom”. Aquí podrás definir si quieres “empacar” los UV’s con escalado y rotación incluidos, y también, definiendo el margen de separación entre ellas.
Una vez aplicado presionado el botón “Pack: Custom”, obtendrás algo así.
La pestaña “Element Properties” trabaja en conjunto con la anterior. En ella podrás definir grupos de UV’s, para mantener algunas relaciones al momento de realizar el Packaging.
Ahora, volviendo un poco más arriba, la pestaña “Stitch” es la que irá dando forma a tus costuras, con 4 distintas opciones para coser.
Todos estos métodos trabajan en base a las aristas, por lo que tendrás que seleccionar una o más, antes de empezar a trabajar.
“Stitch To Target” realizará la costura llevando el elemento seleccionado a la arista correspondiente. “Stitch To Average” coserá siguiendo una media. “Stitch To Source” hará la costura trayendo la arista correspondiente al elemento seleccionado. Y finalmente, “Stitch: Custom” procesará de manera automática siguiendo el mejor método de costura posible.
Revisa las siguientes dos imágenes para una explicación más gráfica.
Desde la pestaña “Explode” podrás separar tus costuras, con “Break”, para poder ir reorganizándolas, o aplanar las caras, según el ángulo, grupos de suavizado o ID de material de los polígonos. La primera opción es probablemente la más utilizada.
La herramienta “Target Weld” te permitirá soldar costuras, arrastrando una sobre otra, de manera similar al Weld del Editable Poly.
Si haces click sobre el último ícono de la primera línea, “Flatten: Custom”, y mantienes presionado, seleccionando la opción que se desplegará a continuación, llegarás al siguiente menú: “Flatten Mapping”.
Lo que hace esta opción es aplanar tus UV’s, separando en grupos, y siguiendo los parámetros del ángulo del umbral (Polygon Angle Threshold) y el espaciamiento.
La herramienta “Flatten Mapping” puede ser útil para separar todos los UV’s en una primera instancia, para luego ir soldando cada costura de manera independiente.
Para guardar tu unwrap debes ir a Tools > Render UVW Template, desde el menú superior del UV Editor.
A continuación se abrirá el panel “Render UVs”, donde podrás modificar el tamaño y los colores de las líneas de tu mapeo. La imagen que obtendrás debes posteriormente abrirla en alguna aplicación para edición de imágenes, como Photoshop.
La idea de este mapa es que sirva como guía para pintar tus texturas, que luego simplemente insertas en un material y arrastras sobre el modelo.
Abajo, un ejemplo de una textura pintada sobre el UV renderizado.
Antes de terminar realizaremos el ejercicio completo del unwrap para la tetera que creamos al principio.
Puedes ver el video después del salto.
Si te gustó este tutorial ayúdanos a difundirlo, para así poder seguir creando más ;)
Y por supuesto, todos los comentarios y críticas para mejorarlo son más que bienvenidos!