Bake de texturas con multiples UV en Blender

Desde la versión 2.43a Blender permite el uso de múltiples coordenadas UV en el mismo objeto. Esto tiene varias aplicaciones, quizás la que más salta a la vista es la posiblidad de crear personajes para videojuegos, donde el mapa de textura para la cara (que necesita de mayor resolución) se podría separar en una imagen diferente con su propio mapa, sin depender del mapa del resto del personaje.

Aunque ya se puede intuir, por lo mencionado arriba, hay que explicar que el mapeado UV no es más que el despliegue de las coordenadas de los vértices, que componen un modelo en 3D, en una imagen plana de 2 dimensiones. Así, pasamos de tener vértices con valores X, Y, Z a tener puntos que representan dicho vértice en U, V (se usa esta terminología, pero sería equivalente a decir que los podríamos representar con X, Y). Este mapeado nos permite trasladar una imagen, con la textura que queramos, directamente sobre el modelo en 3D.

UVMap in Blender


La incorporación en Blender, también desde la 2.43, del Bake de texturas nos permite sacar muchas más posiblidades. El Bake, o mal traducido “bakeo”, de texturas es el volcado del render de cada cara del modelo en 3D en la imagen que contiene sus coordenadas UV. Con esto podemos iluminar una escena, realizar el render de cada objeto por separado y guardar la información de como afecta esa iluminación (y los objetos que participan en el proceso) en una textura. Así, una vez realizado el Bake para toda la escena, podemos eliminar las fuentes de luz, aplicar las texturas resultantes a los modelos y realizar animaciones con el ahorro de tiempo que supone no tener que calcular la iluminación para cada frame. El sistema en sí es muy viejo 😉

Juntando la posiblidad del Bake de texturas, y la del uso del mapeado UV múltiple, llegamos a la posiblidad de crear modelos a los que aplicamos una imagen y de los que podremos sacar otra imagen que no afectará al mapeado original ni a la textura aplicada. Veamos un ejemplo realizado para un edificio subido en Google Earth.

El edificio en cuestión no existe todavía, así que se cogen referencias de una maqueta y un plano que lo sitúa con las carreteras que lo rodearán. Dichas carreteras se pintan en una textura y se le aplica a la malla que hace de suelo del edificio.

Mesh with UVmap

Así tenemos ya unas coordenadas UV para el objeto y una textura que se aplica en el modelo siguiendo esas coordenadas.

Pero lo que nos interesa es una textura que guarde la información de la iluminación, para así poder subir un edificio a Google Earth con las sombras pintadas. Así que creamos unas nuevas coordenadas de textura, seleccionamos el objeto y pulsamos “New” al lado de la opción “UV texture” en el menú Editing (F9)

Add UV Map

Esto nos crea un nuevo mapa, los botones seleccionados nos indican que mapa está activo. Nos falta ahora definir el nuevo mapa y crear la imagen para el bake. Entramos en modo “UV Face Select” pulsando la tecla F y escogemos una forma de proyección del mapa pulsando la U. En la ventana donde tengamos el “UV/Image Editor” (mayúsculas+F10) creamos una nueva imagen de un tamaño apropiado para que la resolución sea adecuada.

New Imagen in UV/Image Editor

Sólo nos queda asegurarnos de que el objeto, tiene asignada las coordenadas UV del mapa de la carretera en la definición del material (F5) colocando el nombre que le habremos dado al mapa para que así sea:

Define UVmap name

Y activar el último mapeado creado que va asociado a la textura nueva en Editing (F9)

Point to new UVmap

Ya está todo listo. Iremos a Menú Scene (F10) para lanzar el Bake y éste se guardará en la textura nueva. Sólo quedará aplicar esa textura al material del objeto y ya lo tendremos listo para exportar a Collada.

Finished model

Dejo aquí el archivo .blend para poder hacer pruebas

Download

8 comentarios en “Bake de texturas con multiples UV en Blender”

  1. Cuando le doy a exportar en 3ds e importo en Sketchup no cargo las texturas y en collada tampoco veo nada. A q se debe?

    Gracias
    Lucia

  2. Hola Lucía,

    Tienes que tener la textura en el mismo directorio que el .blend, y hacer la exportación a ese mismo directorio. Recuerda que en el material del modelo hay que asignarle la textura, que el mapeado debe ser UV y que hay que entrar en UV/Face Selected Mode para que blender guarde las UV coordinates.
    Una recomendación es que el nombre de la textura no sea muy largo, esto me ha dado problemas con algunos archivos.
    Además, una vez en Sketchup, hay que revisar el nombre del material que carga Sketchup, porque normalmente le añade un .jpg al nombre del material (no a la textura) y se producen errores al exportar a KMZ o a 3dWarehouse. Así que en el editor de materiales del Sketchup, hay que cargar los materiales del modelo y modificar el nombre de cada material.

    Espero que te sea útil.
    Salute.

  3. Muchas gracias, ayer lo segui intentado y finalmente consegui exportalo sin problemas. Sin embargo lo he intentado hacer con un nuevo modelo y no entiendo porque cuando voy hacer el BAKE la textura se convierte toda negra, a pesar de tenerlo iluminado.

  4. Existe alguna manera de importar un modelo 3ds creado en SU con texturas , y despues hacer un bake para volver a importarlo a sketchup?

  5. Si en el BAKE la textura te sale toda negra es porque te has saltado algún paso. Recuerda asignar unas coordenadas UV al modelo, crear una nueva textura para poder volcar ahí la información e indicarle al material que use el UV correcto en caso de querer bakear un objeto con más de un UVmap.

    En la otra pregunta no entiendo qué es el “SU”, pero hablando genéricamente, puedes importar cualquier modelo 3ds, luego aplicar las texturas que tenga y hacer el bake. Una vez tengas la textura bakeada se la asignas de nuevo al modelo, indicando ese nuevo mapa en las propiedades de la textura, y lo exportas otra vez a 3ds. Con esto podrás abrirlo con Sketchup con la iluminación bakeada.

    Salute.

  6. Ah! Desde Sketchup Pro puedes exportar a obj y 3DS, sí. Luego el proceso sería el mismo que si hubieses creado la malla desde Blender.

    Hace algún tiempo empezaron a desarrollar un script para importar kmz en Blender, pero el desarrollo se paró. La versión en la que se quedó está aquí.
    http://jmsoler.free.fr/didacticiel/blender/tutor/py_import_kml-kmz_en.htm

    Salute.
    PD: Carlos, me llamo Carlos (aka 8tintin).. siempre olvido firmar en el blog 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload CAPTCHA.