Texturas fotorealistas

Image(108)
Vamos a ver muy por arriba como se crean las texturas a partir de imágenes capturadas por una cámara digital…

Para nuestro propósito podemos reducir todas las cámaras digitales disponibles en el mercado a tan solo dos categorías, las que capturan en formato sin compresión (RAW) y las que no.
Descartamos todas aquellas que aunque pueden lograr un detalle aceptable para imágenes de propósito general, no sirven para sacar fotografiás que serán usar como parte de un material (specular, difuse, etc). Una Nikon d90 como en nuestro caso, es perfecta para lograr el objetivo.
Una lista aunque no completa de las cámaras compatibles se puede ver en este enlace. También menciono que en realidad las cámaras usan un formato propio aunque sin compresión, que debe ser exportado como DNG para trabajarlos.

Posicion:
Por lo general vamos a tratar de capturar la superficie de nuestra futura textura a 90 grados, seria para evitar la distorsión de la imagen y una uniformidad en la luz.

Image(120)

Luz:
Lo ideal es hacer las capturas un día nublado, si no tenemos la superficie bien iluminada, siempre podemos recurrir a la exposición, es mejor que tener que retocar la imagen final para lograr quitarle el brillo del sol en algunas partes, una sombra marcada o bien un reflejo que no necesitamos.

Escalabilidad
Si necesitamos cubrir un territorio grande podemos repetir las texturas como se muestra en las siguientes imágenes:

Se escala horizontal y verticalmente:
scale_hv

Se escala solo horizontalmente, podemos ver como queda marcada la diferencia entre la parte superior y la inferior de la textura. Es frecuente que solo lo notemos cuando tratamos de aplicarla al material, se necesita trabajo en un editor de imágenes para corregirla:
scale_h

No se escala bien ni horizontal ni verticalmente. Es el caso mas complejo, probablemente no podamos hacer nada para que se vea bien esta textura:
no_scale

En los dos últimos casos podemos tratar de cortar la textura del RAW nuevamente prestando mucha atención en los limites, también podemos probar suavizarlos o copiando una parte del centro a los costados para que quede mejor.

Cuando tengamos nuestras imágenes, podemos trabajarlas en RAWtherapee que es una aplicación gratuita o bien en Lightroom, si es que podemos permitirnos este lujo. En ambos casos el primer ajuste que tenemos que realizar seria corregir la distorsión de la lente usando Lens Correction Profile (.lcp), que seria un archivo de “perfil” de lente de nuestra cámara. En el caso de rawtherapee necesitamos obtener este archivo, en cambio con lightroom seguramente ya viene incorporado por lo que solo hará falta activarlo.
Si tenemos una combinación de cámara/lente que no es soportada por lightroom o bien usamos rawtherapee, podemos usar el Adobe Lens Profile Creator para crear un perfil o bien probar buscando uno en Adobe Lens Profile Downloader, ambos disponibles en este enlace.

POT/NPOT (power of two/not a power of two)

Cada lado de nuestra textura debe ser múltiplo de 2, para evitar el scaling ya sea por el engine que usamos o por el OpenGL/Direct3D. Para mayor informacion pueden recurrir al manual de Apple que sorprendente mente tiene bastantes tips al respecto.
La regla seria entonces que es normal tener una textura con 512px de ancho y 128px de alto, pero debemos evitar a toda costa que los números sean impares. Algo como 1723px*579px es un perfecto ejemplo de lo que no debe pasar, cortemos la textura antes de guardarla para tener un buen rendimiento y no tener que volver a cambiar todo mas adelante. Aclaro que esto no es tan asi para software de modelado 3D, donde si podemos usar cualquier resolución para texturas sin afectar mucho la velocidad del render. Cuando veamos MIP Mapping, retomamos el tema para que se entienda mejor de donde sale el impacto en rendimiento. Por ahora les dejo una buena herramienta para revisar si las texturas que ya tienen cumplen con esta condición.

Formato de texturas

Por lo general usamos el formato TGA que es de alta calidad en los videojuegos, aunque para reducir requerimientos de memoria también se convierte a DDS.
Para convertir de TGA a DDS, podemos usar el plugin de Nvidia para Photoshop o uno similar para GIMP que hace el mismo trabajo. Primero igualmente nos conviene aprender un poco sobre mipmaps, por lo que les dejo un buen PDF, también de Nvidia.

En juegos de hace unos años atrás era relativamente frecuente cargar las texturas en formato TGA únicamente en calidad Ultra, cuando al bajar a Normal o Low el detalle, se empleaba el DDS.
Este formato tiene como particularidad la posibilidad de comprimir la textura con varios algoritmos:

DXT1 – si no tenemos transparencias
DXT3 – si tenemos transparencias
DXT5 – si necesitamos comprimir el normal map (evitar a toda costa hacer eso ya que la calidad resultante es paupérrima)

Por el momento solo tenemos en cuenta DXT1, ya que provee el mejor nivel de compresión.

Deja un comentario

Para proteger el blog de SPAM, le pedimos que complete la tarea:WordPress CAPTCHA