mapear materiales con bake.

Por Kaito.

Es conocida la cantidad y tipos de materiales utilizados por Blender. Estos materiales (metal, madera,) pueden ser utilizados en los Game Engines (es decir, motores de juego) utilizando la función bake (volcado del render de cada cara del modelo en 3d en la imagen que contiene sus coordenadas UV) de Blender, facilitando el proceso de texturizar y mapear de la malla.

A continuación, explico los procesos que he utilizado.

Primero voy a crear una textura en blanco de 512 por 512. Voy a utilizar el formato Targa (.tga) 32 bits, reconocida por la mayoría de motores de juego, desde Paint. Net (por ejemplo). Sera necesaria posteriormente para realizar el bake.









Desde Blender, tenemos un modelo 3d al que se le han aplicado 3 materiales diferentes.



Debemos configurar correctamente la iluminación del escenario, para que en el bake no aparezcan zonas oscuras o en sombra completamente. Para el ejercicio he aplicado 4 lamps (es decir, lámparas) y una del tipo spot (de spotlight, es decir, foco). También he ajustado la posición de la cámara para ver el modelo 3d completamente. Dejo capturas del formulario transform properties de los diferentes objetos de iluminación.



Comprobamos el efecto y las sombras producidas por los objetos de iluminación, realizando un render.


Establecemos una de las ventanas al tipo UV/Image Editor.



Con el modelo 3d seleccionado cambiamos a modo edición (en inglés Edit Mode), y seleccionamos todo (debería estar seleccionado todo ya, pulsa a si es necesario para seleccionar todo), a continuación, pulsamos u o menú Mesh->uv Unwrap para que aparezca el menú de opciones de mapeado, donde seleccionamos la opción Unwrap (smart projections) (es decir, pequeñas proyecciones).



Seguidamente aparece un formulario, pulsa ok para terminar (puedes modificar la celda Island Margin, es decir, margen de isla para separar la diferentes partes proyectadas de la malla y así poder modificar con mayor facilidad la textura desde el editor gráfico posteriormente. El valor 0 proyecta las partes de la malla pegadas).



Este sería el resultado del mapeado (unwrap) en la ventana del UV/Image Editor.



Ahora, abrimos desde la ventana del UV/Image Editor la textura en blanco creada anteriormente, ejecutando la orden del menú image->open. (es decir, abrir). Es necesario hacer esto, debido a que la función bake de Blender necesita una textura sobre la que escribir o realizar el bake.



Ya podemos realizar el bake con el botón full render activado para realizar el bake con las sombras aplicadas sobre la textura. Si seleccione el botón textures (situado un poco más abajo) el bake no recogerá las sombras proyectadas sobre el modelo 3d. También puedes configurar un parámetro llamado Margin (es decir, margen) para que la textura creada por el bake sobresalga de las coordenadas del mapeado (unwrap).



Este sería el resultado desde la ventana UV/Image Editor.



Naturalmente, ahora puedes modificar la textura (agregar texto, símbolos,) desde el editor gráfico (en este caso, Paint. Net). O puedes pintar la textura desde Blender, desde el modo Texture Paint cómo se hizo en el ejercicio de creación terrenos 3d para Game Engines (o motores de juego) personalizados.

Al modificar la textura, el menú image de la ventana UV/Image Editor ha cambiado a image*. Debemos guardar la textura para mantener los cambios ejecutando la orden del menú image*->save.



Antes de exportar el modelo 3d a DirectX (.x) debemos activar el botón Texface de todos los materiales.



Ahora ya ejecutamos la orden desde el menú de la ventana 1 file->export->DirectX (.x) importante: guardar.


Importante: guardar el archivo (.x) en la misma carpeta, junto a la textura.

Mejorando lo realizado hasta ahora.

Podemos modificar la textura para situar una imagen en la zona que comprende la coordenadas de mapeado (unwrap) de los ojos que están completamente oscuras. Para esto, he realizado lo siguiente.

Primero debemos guardar en un archivo imagen la proyección de la malla del mapeado, mediante el script de Blender save UV face Layout (es decir, guardar colocación de cara UV), desde el menú de la ventana UV/Image Editor UVS->scripts->save UV face Layout.





A continuación guardamos un archivo imagen Targa (.tga) con el nombre que queramos (he utilizado rejilla, (*.tga). El script añade al nombre _cube. Es decir, quedaría rejilla_cube, tga. Esto es debido a que esta activado el botón object que añade el nombre del objeto al archivo.

En el formulario del script podemos ver los botones Wrap (es decir, envolver, es conveniente dejarlo marcado ya que mueve ligeramente el mapeado centrándolo en la textura). El botón all Faces activado guarda todas las caras en el archivo imagen. Este sería el resultado (imagen siguiente).



Pero sólo queremos modificar la zona de los ojos. Para esto selecciona en el modo edición, desde una de las vistas, las caras de dicha zona. En el modelo del ejercicio he utilizado la orden del menú view->set clipping border (es decir, establecer borde de corte) para visualizar una determinada zona durante la selección, y la orden border select pulsando 2 veces b para seleccionar con la forma circular.



Este sería el resultado en la ventana del UV/Image Editor.



Ahora guardamos con el script las caras seleccionadas, desactivando el botón all Faces. También voy a desactivar el botón object.



Ahora, desde el editor gráfico (en este caso Paint. Net), abrimos primero la textura principal, en este caso hormiga, (*.tga) (para que luego se encuentre detrás de la capa que contiene rejilla, (*.tga) ejecutando la orden del menú archivo->abrir o el botón de acceso directo.

Finalmente, agregamos en una nueva capa el archivo imagen rejilla, (*.tga), ejecutando la orden del menú capas->importar desde archivo.



Con el selector de color (varita mágica) mientras mantenemos pulsada la tecla mayúsculas hacemos click con el bir sobre el fondo blanco de rejilla, (*.tga), para seleccionar todo el fondo blanco de la imagen. A continuación pulsa suprimir para eliminar y hacer transparente.



Este sería el resultado.



Las aristas o líneas son de color negro, y no se aprecian bien. Lo que sí se ven, son los vértices representados por puntos rojos.

Puedes invertir colores para hacer las aristas blancas.


Para modificar la textura principal (en este caso hormiga, (*.tga) y al mismo tiempo ver rejilla, (*.tga) debemos tener seleccionada la capa de hormiga, tga.



Ahora voy a crear un nuevo archivo imagen donde voy a dibujar el iris y pupila del ojo. Comienzo creando un archivo nuevo cómo se comentó al inicio del ejercicio, y dibujo primero un círculo verde y luego uno más pequeño negro. Utilizando la selección en elipse o circular copio el área necesaria al archivo donde se encuentra la textura principal. Aquí dejo unas imágenes.



Al pegar la selección pulsando Control + v sobre la textura principal debemos ajustar su tamaño seleccionando las agarraderas y arrastrando el ratón. Para mover de posición pincha por la zona central de la textura copiada.



Una vez situado en el primer ojo, realizo otro copiar/ pegar y muevo la copia al segundo ojo. Este sería el resultado.



Ya puedo eliminar la capa donde se encuentra la rejilla y guardar la textura principal.



Este sería el resultado después de ejecutar la orden desde UV/Image Editor del menú image->reload (es decir, recargar).



Las caras o superficies que han quedado por pintar, son trozos de mapeado aislados que es mejor retocar desde Texture Paint. Pero en este caso, no consigo los resultados buscados.



Voy a seleccionar las caras que ocupa la zona coloreada del ojo y voy a escalar al máximo. Este sería el resultado.



También voy a escalar las coordenadas UV desde la ventana del UV/Image Editor (pulsa s para escalar o g para mover).



Finalmente.