Normal mapping en Blender
taller 3d - Normal mapping en Blender
Por tiziana loni (tizeta) y Roland pluss (odjin/dragonlord)
prerrequesitos
Habilidad para modelar, Unwrap/uv-map, configurar un color y un canal de textura de mapa de choque (Bump Map) en Blender.
¿Qué es el normal mapping?
En la practica, es una especie de mapeado de choque avanzado. Necesitas dos modelos, uno simple de baja cantidad de polígonos y otro de alta cantidad de polígonos, versión detallada del anterior. Con las herramientas adecuadas, estarás preparado para hacer que el modelo de baja cantidad de polígonos luzca bastante similar al detallado, simplemente aplicando una textura de mapeado normal (normal mapping) al mismo. El mapa normal procede de la versión detallada del modelo.
blender y denormgen
Denormgen ha sido desarrollado por dragonlord como una herramienta para epsylon -the guardians of xendron, el juego que está desarrollando: puedes descargarlo en el siguiente enlace, la versión actual es la 1.4. http://rptd, dnsalias.net/epsylon/.
Obtendrás el programa independiente, denormgen, y un script para Blender. Una vez instalado, en el menú export de Blender encontraras una opción para exportar llamada drag[en]gine intermediate model.
configurar el modelo
Necesitas crear tus dos versiones del modelo en el mismo archivo (*.blend). Por ejemplo, en la imagen 1, el primero es de 1508 polígonos mientras que el segundo postura 139 polígonos (triángulos).
En ambas versiones no olvides comprobar y ajustar las normales: seleccionar show normal del panel de edición [f9], seleccionar todo [a], y a continuación presionar [Control + N].

Imagen 1: modelos de alta y baja cantidad de polígonos.
Además, ten cuidado de no tener vértices dobles o no usados. Desde el lanzamiento de denormgen 1.4, el nombre de la versión de baja cantidad de polígonos debe finalizar con.low (ej.: character, Low), mientras que el de alta cantidad de polígonos debe finalizar con.hi (ej.:character, hi).

Imagen 2: armadura de alambre del modelo.
Otra cosa importante es que la versión de baja cantidad de polígonos debe tener un material con una imagen asignada y mapeada a UV, un buen trazado UV y una imagen de textura asignada al mismo. Puedes superponer diferentes uvs en un solo mapeado UV, para bajar el tamaño de la textura, pero puedes dejar las cosas como estaban. La imagen puede ser la que tú quieras, en esta etapa es sólo necesario definir el tamaño de la imagen y hacer correr el script. También puedes usar un mapa de prueba (testmap): desde el editor UV, accede al menú image>>new, selecciona el tamaño de la textura y comprueba el botón UV test Grid, después pulsa ok. Guarda la imagen con image>>save as, y carga ambas en la distribución UV y en el primer canal del panel de texturas de materiales. La imagen podría tener también la textura de color final, si ya tienes una.

imagen 3: editor UV
una mejor opción sería un mapa de prueba (testmap) de rejilla con números y letras en el mismo, para evitar cambio de piezas en el mapa UV. Estos son los tipos de imágenes que son usados (ver las imágenes 3-5).

imagen 4: panel de materiales.
Para la versión detallada, sólo un par de trucos son necesarios. Junto con el sufijo.hi, presta atención a las proporciones. Las dos versiones deben ser muy similares, excepto en los detalles. Las proporciones generales deben ser las mismas. Esto es fácil de obtener si la versión de baja cantidad de polígonos de tu modelo procede de la versión de alta cantidad de polígonos, o viceversa. No importa si realizas la versión de baja o de alta cantidad de polígonos primero, sólo depende de que método sea el que más te guste.

imagen 5: panel de texturas.
También puedes hacer la versión de alta cantidad de polígonos primero y posteriormente usar la herramienta decimator. Pero esto te dará una malla muy sucia y triangulada. Y recuerda que no necesitas desenvolver y añadir un material a la versión detallada. Solamente necesitas esculpirla (Sculpt Mode).
Eso es todo por el momento. Tienes tu versión de baja cantidad de polígonos y de alta cantidad de polígonos en el mismo archivo, ¿cierto?
Tienes que comprobar las normales y configurar el UV y el material para la versión de baja cantidad de polígonos.
Así que, ve al modo object y selecciona ambos modelos. Corre el script file>>export>>drag[en]gine del modelo intermedio y obtendrás el archivo.dim.

imagen 6: corriendo el script denormgen
Ahora ejecuta la aplicación independiente denormgen y abre el archivo. Puedes rotar la vista con el botón izquierdo del ratón, y hacer zoom con [shift + botón derecho del ratón].

imagen 7: interfaz de denormgen
[alt] + botón izquierdo del ratón mueve la luz. Desde el menú view puedes alternar con el modelo de alta cantidad de polígonos y regresar al modelo de baja cantidad de polígonos.
Puedes eventualmente cambiar el tamaño del mapa usando el menú: texture-maps>>texture map sizes.
Notar que denormgen también te permite abrir la configuración de las superficies de subdivisión para el modelo de alta cantidad de polígonos. Basta con presionar [Control + t].
ahora llega el momento de hacer la textura
Abre el menú texture (textura) maps>>generate normal/displacement maps.
Tienes las opciones de botón radio Tangent space (espacio tangente) y object space (espacio objeto). La primera es buena para objetos animados, mientras que la segunda es para objetos inanimados tales como paredes, edificios o estatuas. Activando o desactivando Smooth Hi-Res Mesh normals (normales de malla de alta resolución suaves) te permite obtener una versión suave o facetada del Normal Map (en la mayoría de los casos, dejarla marcada en lo correcto).

Imagen 8: modelos detallado, de baja y alta cantidad de polígonos con el Normal Map activado, como aparecen en la ventana de previsualización del denormgen.
Después de hacer tus elecciones, espera que los mapas sean generados. Una vez que los mapas son generados, usa las opciones del menú view para ver el resultado del Normal Map aplicado a tu modelo de baja cantidad de polígonos, y compáralo con la versión de alta cantidad de polígonos.
El propio Normal Map es mostrado en la ventana texture preview.
Notar que denormgen esta también disponible para generar un mapa de desplazamiento de escala de grises, pero esto aún está en desarrollo y es probable que tengamos resultados extraños.
El último paso es guardar el mapa: selecciona el menú texture maps>>save Normal Map. obtendrás una copia tga (formato de archivo de imagen Targa) del Normal Map. Esta imagen generada necesitara un pequeño ajuste para ser usada en Blender.
gimpeando la imagen
El Normal Map generado es utilizable con los más comunes motores de juegos tal cómo está, pero, si es usado en Blender, produce luces y sombras que se muestran de forma errónea.
Esto será arreglado con una opción que será añadida en los próximos lanzamientos de denormgen, pero por el momento el Gimp, o programas similares, pueden ser usados para hacerlo utilizable por Blender.
Si el Normal Map es generado en un espacio tangente:
Abre el archivo en el Gimp, y selecciona el canal verde del panel canales.
Presta atención a los otros canales, no deben estar seleccionados o no resultara. Son seleccionados por defecto, por lo tanto, haz clic sobre los canales rojo y azul para deseleccionarlos.
Entonces, invierte los colores para el canal verde usando el menú de capa: capa>>colores>>invertir.
Nota que si el mapa se vuelve verde o algo parecido, probablemente tengas los otros canales seleccionados. Recarga el archivo e inténtalo de nuevo. La capa debe tener la misma sombra, con ligeros cambios.

Imagen 9: selecciona sólo el canal verde.

Imagen 10: que deberías obtener.
Si usaste la opción object space:
Proceder igual que antes, pero deberías invertir el canal rojo en vez del verde.
creando el Normal Map en Blender
Es muy similar a agregar un Bump Map, excepto que tienes que habilitar también Normal Map en el panel texture, no sólo en el panel material.
Ve al panel texture [f6], crea un segundo canal de textura y deja su tipo como image, después asígnale el Normal Map.

Imagen 11: pestaña image en el panel texture.
Importante: en este panel necesitas también presionar el botón Normal Map. Cambia al panel material [f5], y desde la pestaña Map Input selecciona UV. Selecciona también Nor de la pestaña map todo.
Asegúrate de que el mapa col no se selecciona para este canal de textura.

imagen 12: pestaña map todo en el panel material
Eso es todo: fija el primer canal de textura, en caso que hayas estado usando un testmap (mapa de prueba), y dale un buen mapa de color o sólo una tinta plana.

Imagen 13: mapa de las normales renderizado.
De acuerdo, también puedes usar los canales restantes para agregar lo que tú quieras, el número de canales libres disponible es el único límite.
Fija las luces, ajusta la cámara, y ¡disfruta el render.
¿y qué pasa con sharpconstructí
Sharpconstruct es muy útil para agregar y refinar los detalles de la versión de alta cantidad de polígonos. Para usarlo, exporta esa versión como un archivo (*.obj), entonces ábrela y modifícala en sharpconstruct, guárdala de nuevo como un archivo obj.
Importa el archivo obj de nuevo en Blender y añade (append) la versión de baja cantidad de polígonos en el mismo archivo. También puedes usar algunos preciosos scripts Python para refinar la versión de alta cantidad de polígonos, como en b-brush o espresso.
solución de problemas.
Aunque está en desarrollo, denormgen realmente funciona genial. La única cuestión que he notado es con imágenes de baja cantidad de polígonos, con los detalles angulosos: en este caso, los píxeles pueden producir artefactos sobre la malla. Si no quieres que, aumente la resolución, puedes intentar arreglarlo en Gimp:
Seleccióna, con la herramienta lazo, los bordes dentados y aplica el script desenfoque (blur). Para los mejores resultados, asegúrate de activar difuminar los bordes en las opciones del lazo, con un radio apropiado del píxel.
No uses las herramientas de emborronado y clonado: lo que puedes hacer en un Normal Map esta realmente restringido, y podrías arruinar fácilmente la textura.
Fin del taller.
algunos enlaces útiles
Proyecto epsylon.
http://rptd, dnsalias.net/epsylon/
Sharpconstruct.
http://sharp3d.sourceforge.net/media....php/main_page
http://sourceforge.net/projects/shar...ojects/sharp3d
http://sourceforge.net/projects/sharp3d
Scripts de Blender espresso y pytablet:
http://members.Fortunecity.de/pytablet/
Librerías Fox: (si usas Linux, prueba primero tu paquete)
http://www.fox-Toolkit.org/. www.blenderart.org.
Última edición por 3dpoder; 08-05-2009 a las 18:00
|Agradecer cuando alguien te ayuda es de ser agradecido|