Uso de texturas en blender (II) - UV

UV

En el anterior artículo vimos los principales de tipos de textura y para que sirve cada una, pero antes de poder usarlas hay que decirle a nuestro modelo como se debe acomodar la textura, esto lo logramos creando un mapa UV (UV map).

El mapeo UV (UV mapping) es el proceso de "desenvolver" un modelo 3D para generar un mapa UV el cual representa la malla del modelo en un mapa 2D que se  usa de referencia para determinar como colocar la textura en la malla, es como los modelos armables de papel que vienen en una o varias hojas y hay que recortar, doblar y pegar, el proceso de mapeo UV es similar pero invertido.

El nombre UV se refiere a que en los mapas se denomina a estas letras como los ejes, es decir,  el equivalente de X, Y y Z en 3D, sin embargo para evitar confusiones entre los ejes del espacio 3D y los del mapa UV se le denomina U a lo que vendría a ser X y V a Y, aunque a veces se agrega la W al nombre (UVW) esta realmente carece de uso ya que al ser un mapa 2D no existe profundidad que medir.

Unwrap - wikimedia

(wikimedia)

Los objetos al ser creados no tienen un mapa UV. Una vez tenemos el mapa UV podemos ponerle una textura y en el modelo esta aparecerá una parte en cada cara según donde esté cada cara de la malla UV.

Aunque algunos motores de rederizado (como Blender Internal o Blender Render) pueden generar su propio mapa automáticamente, sin embargo esto no es muy recomendado ya que no hay manera de controlar la posición de la textura en relación a las caras ni su deformación.

En blender podemos tener varias capas de mapas UV así como podemos tener varios materiales para el mismo objeto, podemos tener distintos mapas UV y usar cada uno para distintas texturas, esto es útil sobre todo para colocar estampas o marcas a un objeto sin modificar toda la textura.

Para hacer un mapa UV en blender primero debemos tener nuestro modelo y estando en modo edición seleccionamos toda la malla (presiona A hasta que se seleccione todo) y presiona la tecla U, aparecerá un menú con las siguientes opciones:
Unwrap
Smart unwrap
Lightmap pack
Follow active quads
Cube projection
Cylinder projection
Sphere projection
Project from view
Project from view(bounds)
Reset

Unwrap
    Este método calcula automáticamente la mejor forma de crear el mapa UV en base a la malla seleccionada y puede servir para objetos simples y regulares, sin embargo para mallas más complejas y de formas más orgánicas no da tan buenos resultados por si sola, para eso hay que marcar costuras(seams) en la malla para que el algoritmo las use como líneas de corte y pueda separar la malla con menor distorsión. Más adelante veremos como hacer esto ya que es uno de los métodos más usados ya que permite un mayor control.

 

Cube unwrap

Suzanne unwrap (no seams)

Suzanne unwrap (con seam)

Smart unwrap
    Esta opción da un mayor control sobre la automatización de la colocación de costuras y el desenvolvimiento basado en los ángulos de la malla. Este método es bueno para formas mecánicas y arquitectónicas tanto simples como complejas.
    Las opciones que da este método son:

        Límite de ángulo (Angle limit): Controla como son agrupadas las caras, entre más alto el límite habrá grupos más pequeños pero menos distorsionados, mientras que un límite bajo creará menos grupos pero con mayor distorsión.

        Margen de islas(Island margin): Esto controla que tan cercanos se colocan las islas o grupos de la malla UV, entre mayor sea el número más espacio entre islas (no es recomendable tenerlas pegadas ya que al alejar la vista del modelo algunas veces se alcanza a mostrar los pixeles adyacentes al borde de la cara).

        Peso del área (Area weight): Peso del vector de proyección por caras con grandes áreas.

   

Lightmap pack
    Este método toma cada cara del modelo, o seleccionada, y las acomoda en un mapa UV de manera separada cada una, es decir, cada cara es una isla. Esto es útil para motores de juego y de aplicaciones de renderizado en tiempo real ya que la información de la iluminación se guarda en una textura por separado mediante el método 'bake' el cual veremos en otro artículo, esto se hace para ahorrar la carga de procesar y calcular la iluminación de un objeto al motor de render.
    Las opciones que nos da este método son:

        Selección (selection): La opción de Malla del objeto seleccionado (Selected mesh object) puede funcionar para varias mallas a la vez, para hacerlo, en modo objeto hay que seleccionar los modelos, después en modo edición de alguno de los objetos seleccionados hay que activar la opción, esto dará como resultado un mapa UV para cada modelo (dentro de cada modelo), cada mapa individual muestra el espacio para los demás mapas, así al final mediante un programa de edición se pueden combinar todas texturas en una imagen.

        Compartir espacio de textura (Share tex space): esto es útil si se mapeando más de una malla ya que intentará acomodar todas las caras de los objetos dentro del mapa UV sin encimarlos.

        Nueva capa UV (New UV layer): Genera una nueva capa de UV para cada objeto seleccionado.

        Nueva imagen (New image): Asigna nuevas imágenes por cada objeto, pero solo si Compartir espacio de textura está activado.

        Tamaño de imagen (Image size): Ajusta el tamaño de las nueva imágenes.

        Calidad de empacado (Pack quality): preempaquetado antes de un empaquetado de caja más complejo.

        Margen (margin): Esto controla que tan cercanas estarán entre si las islas, entre más alto el número más espacio entre islas.

 

   

Follow active quads
    Esta opción toma las caras seleccionadas y las coloca siguiendo la continuidad de los ciclos de las caras (líneas de cara cuadradas una tras otra) incluso si la malla tiene forma irregular. Este método no respeta el tamaño de la imagen ni el área de UV por lo que muy probablemente haya que escalar y acomodar la malla UV.
    Las opciones de Modo de longitud de la arista (Edge length mode) son:
        Uniforme (Even): coloca todas las mallas UV de manera uniforme en el espacio.
        Longitud (Length): Promedia el espacio de la longitud de cada arista de cada ciclo.

    
        
Cube projection      
    Este método es de los más básicos, proyecta la malla en 6 planos separados creando una isla por cada uno, en el editor UV aparecerán encimadas por lo que se verá como solo una isla, sin embargo pueden moverse y escalarse para acomodarlas.

    

Cylinder projection y Sphere projection
    Estas dos son similares en cuanto a funcionamiento, proyectan la malla de manera vertial en una sola isla.

    

Cylinder projection

Sphere projection

Project from view

    Esta opción hace lo que su nombre indica, proyecta al mapa UV la malla tal cual se ve en el visor 3D al momento de hacer la desenvoltura, si se usa la opción Project from view (Bounds) hará lo mismo pero ajustará el tamaño la malla UV para que coincida con el del área UV.

    
    
Si nuestro modelo requiere que le pongamos seams o costuras para poder conseguir desenvolverlo de una buena manera, la forma de hacerlo es muy simple, seleccionamos las aristas por las que irá el corte de la malla y ya que las tenemos seleccionadas presionamos Control E y seleccionamos Mark Seam o marcar costura, esto pintará las líneas de un color rojizo y la siguiente vez que utilicemos la función Unwrap la malla se cortará por esta línea.

   

Para poder ver el resultado de las anteriores acciones debemos abrir un nuevo panel, editor, área o ventana, como lo rec y cambiar su tipo a UV/Image Editor (pueden utilizar la que ya está en pantalla para el visor 3D, pero es más cómo trabajar con los 2 a la vez para ir visualizando los cambios y ajustes), para lograr esto hay 2 maneras, la primera es arrastrar una de las esquinas superior derecha o inferior izquierda de algún área hacía el interior de la misma para crear una nueva, la segunda es darle click derecho al borde de una área y seleccionar Split Area, esto creará una línea de división debajo del cursor, lo movemos para que quede donde deseamos crear la división y damos click, en ambos casos nos creará un clon de la vista original, para cambiarlo simplemente damos click en el selector de tipo de editor que se encuentra en la esquina inferior izquierda (o la superior si cambiaron la cabecera hacia arriba o si clonaron un editor que ya la tuviera arriba) y seleccionamos la opción UV/Image Editor.

Al cambiar a UV/Image Editor nos mostrará una cuadrícula gris la cual es el área de UV, si renderizaron previamente probablemente les aparezca la imagen que renderizaron, en ese caso buscamos en la barra de la cabecera la cruz con la cual cerrar la imagen y regresaremos a la cuadrícula. Entramos a en modo edición y seleccionamos todas las caras, esto hará que aparezca la malla UV, esta malla puede editarse de la misma manera que la malla 3D excepto que no pueden moverla en Z (profundida).
Una de las mejores maneras de probar si el mapa UV está correcto, es decir, que no estire o deforme demasiado la imagen dentro de cada cara de la malla, es cargar una imagen de cuadrícula al mapa UV, blender nos permite generar 2 tipos de cuadrícula para esto, la manera de hacerlo es darle click al botón New o nuevo en la cabecera del editor, esto creará una pequeña ventana donde nos permite ponerle un nombre a la nueva imagen, un tamaño (siempre es recomendable usar texturas cuadradas que sean exponenciales, es decir, siguiendo la serie 128, 256, 512, 1024, 2048, etc, esto por la eficiencia de uso de memoria), un color de base (en este caso no lo necesitaremos), si la imagen tendrá un canal alpha o de transparencia y el tipo de imagen a generar, aquí hay 3 opciones, Blank (vacía) que generará una imagen del color especificado, UV Grid creará una cuadrícula de gris a 2 tonos con una cruz de color al centro de cada cuadro, y Color Grid que nos dará una cuadrícula más grande que la anterior, con colores y transparencia distinta para cada cuadro y una serie alfanumérica que identifica cada cuadro.

    
Para visualizar como queda la textura en el modelo según el mapa UV hay que cambiar el motor de render a Blender Render o Blender Internal (BI) si se está en otro, cambiar el tipo de visualización a Solid (sólido) si no se está ya en esa y en el panel de propiedades (tecla N con el cursor del mouse sobre el visor 3D) hay que buscar la sección Shading y seleccionar la opción Textured Solid, esto nos permitirá ver en el modelo la imagen que tengamos cargada al UV en ese momento, (Nota: esto no agrega la imagen como textura al material ni al objeto, si renderizan no saldrá la textura a menos que ya la hayan asignado al material), si no les aparece la textura, seleccionen todas las caras del modelo y el editor UV quiten la imagen que está cargada(en el botón de la cruz junto al nombre en la cabecera) si es que hay una y luego en el botón de imagen (a la izquierda de agregar) seleccionen la imagen de entre las imágenes que ya están cargadas en blender, esto debería mostrar la imagen en el modelo, y mientras van moviendo vértices en la malla UV podrán ver como se va modificando la textura alrededor de los vértices o caras del modelo, entre más recta o menos deformada se vea la cuadrícula en el modelo mejor será su mapa UV, y digo mejor porque al crear la textura no tendrán problemas de distorsión.

    

Una vez que tenemos el mapa UV como lo queremos podemos proceder a crear o aplicar la textura, para crearla se puede hacer en blender mediante el modo Texture Paint o en un programa de procesamiento de imágenes como GIMP o Photoshop y se puede exportar una imagen del mapa UV para usarlo de referencia, esto se hace en el menú UV en la cabecera del editor UV/Image en la primera opción export UV Layout, al darle click nos abrirá la ventana del explorador de archivos para que especifiquemos donde queremos guardarlo y nos da algunas opciones del lado izquierdo abajo, en las cuales podemos determinar el tamaño de la imagen, el formato y la opacidad.

    

Por último para cargar una textura ya existente simplemente la agregamos al material, esto depende del motor de render, en otro artículo hablaré sobre como crear materiales a partir de distintas texturas, por ahora solo pondré un ejemplo simple de como cargar una textura a un modelo usando el material básico, para Blender Render o internal (BI) como para cycles.

 

Blender Render o Blender Internal

En el panel de materiales primero hay que agregar un material si no se tiene uno ya y le ponemos nombre, luego cambiamos al panel de texturas y le damos click al botón New, cambiamos el tipo a Image or Movie y en la sección de Image le click al botón Open si no tenemos la textura ya cargado en blender (abierta previamente), en caso de tenerla ya cargada simplemente damos click al botón con el icono de imagen y seleccionamos la imagen de entre las ya cargadas; luego más abajo, en el área de Mapping especificamos las coordenadas en la opción coordinate, por default viene la opción Generated la cual para muchos casos es útil pero solo para cuando es una textura simple; esta opción la cambiamos a UV y projection se queda igual, en Flat, con esto ya tienen la textura cargada, si renderizamos debe aparecer la textura bien puesta.

 

Cycles

En el panel de materiales primero hay que agregar un material si no se tiene ya uno, en caso de que empezemos con un material de Blender Internal hay que darle click al botón Use Nodes, esto nos habilitará trabajar el material en cycles, una vez con el material listo, en la sección de Surface vemos el shader Diffuse BSDF, este es el material base, un color sólido mate, para poner textura damos click al botón con el punto en el centro que está justo al lado derecho del recuadro con el color del material (blanco por default), y en la ventana que sale, en la columna Texture seleccionamos la opción Image Texture, esto nos cambiará las opciones donde antes estaba el recuadro blanco, y al igual que en el método anterior podemos abrir una imagen o escoger una ya cargada, por default cycles ya espera que el modelo tenga un mapa UV para cargar la textura en base a este. Con esto ya tenemos la textura en el modelo lista para renderizar

En el próximo artículo veremos más a detalle las opciones para texturas de ambos motores de render y como mezclarlas para conseguir distintos resultados.

No olviden poner cualquier duda o retroalimentación en los comentarios.

Referencias:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Textures/Mapping/UV/Unw...
https://en.wikipedia.org/wiki/UV_mapping
https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics

Comentarios

Muy bueno! (y)

gracias por la info, me ayudaste

Añadir nuevo comentario