Ambient Occlusion en Vray

Definición.- Ambient Occlusión u oclusión ambiental conocida como AO, es un método de sombreado o shading 3D que se utiliza en gráficos por ordenador que ayuda a añadir realismo a la reflexión de los modelos teniendo en cuenta la atenuación de la luz, debido a la oclusión.

Oclusión: se puede definir a la acción y resultado de cerrar u obstruir algo.

A diferencia de los métodos tradicionales como el sombreado Phong, la oclusión ambiental es un método global, en el sentido de que la iluminación en cada punto de contacto opera en función de las demás geometrías en la escena que determina las áreas claras de las oscuras basado en la proximidad de las superficies creando en ellas zonas más oscuras o de oclusión donde la luz no llega, sin llegar a generar sombras.

Los motores ya suelen incorporarlo de base, Mental Ray lo trae como mapa Ambient/Reflective Occlusión. En Vray que es del que vamos a tratar este articulo lo trae como VrayDirt o mapa de suciedad pues este método de sombreado tiene la particularidad de poder ofrecernos dos tipos diferentes de uso, para dar realismo acentuando los detalles de nuestra escena y como mapa de suciedad.

El primero lo encontramos como oclusión de ambiente junto a los parámetros de iluminación indirecta, este afectara de un modo global, a toda la imagen por igual, por lo que podemos usarlo para aplicar el efecto de un modo sutil para realzar los detalles. Este como todos los parametros que añadamos a nuestro render consumira algo más de memoria pero nos dara ese toque que necesitamos.


El segundo lo podemos usar como apoyo para conseguir matizar detalles, como la propia oclusión o suciedad trasladandolo a un elemento de render que usaremos en Adobe Photoshop como una capa superpuesta.



Este lo realizaremos colocando un material VrayLightMtl que contenga un mapa Vraydirt en su slot de color con los valores adecuados al tipo de mapa que vayamos a sacar.


 Este material lo trasladamos instanciado al slot de material override del rollout Global switches en la pestaña Vray de Render. Con este paso conseguimos un render de la escena con este material aplicado de manera global. Este paso no afectara a los materiales que tengamos aplicados en la escena, una vez desactivemos esta casilla la escena volvera a su estado original.



En los parametros de VrayDirt añadiremos los valores que vayamos a necesitar segun el tipo de capa.

Por ejemplo:
  • Si es como apoyo de oclusión, usaremos valores suaves con más subdivisiones para acentuar el efecto.
  • Si es como suciedad, usaremos menos subdivisiones creando ruido en la imagen, incluso aplicando un bitmap como mapa de suciedad en la ranura de radio para difuminar esta por el espacio de la imagen.

  
Una vez rendeada la oclusión como una capa aparte nos vamos a Photoshop y montamos los 2 renders usando un modo de fusión Multiplicar (por ejemplo, dependiendo del efecto que se busque)


Para la suciedad seria algo de este modo.

En el siguiente caso hemos mezclado los 2 tipos de render, uno como capa de oclusión para realzar la imagen y otra como suciedad coloreando esta en photoshop con una tonalidad marrón para conseguir el efecto mostrado.

Baking texture
Otra metodo seria el bakeo de imagenes rendeando a textura. Este sistema se suele usar para texturar objetos independientemente del render final usando un mapeado Unwrap UVW; explicar este no es el motivo de este articulo por lo que daremos por sentado que ya se sabe usar o habria que ayudarse de algun tutorial de los muchos que hay por internet.

Sacar el bakeo es muy sencillo. Aplicamos al objeto en cuestión el shader que configuramos anteriormente como ambient occlusion. Ojo, aqui digo aplicamos al objeto, no hay que ponerlo en la ranura override como anteriormente explique, es un render normal. Y pulsamos la tecla 0 (cero). Esto nos abrira la ventana de "Render to texture". En ella configuramos los siguientes parametros.

  1. Output path: Directorio donde se guardaran los renders.
  2. Si hemos seleccionado el objeto antes de pulsar 0 ya nos saldra en la lista de objetos este.
  3. Activamos la casilla "Use Existing Channel". Con esto usaremos el mapeado Unwrap que hemos creado para nuestro objeto.
  4. Pulsamos el botón Add, añadiendo el tipo de elemento que vamos a sacar, en este caso como ya esta aplicado el material seria un elemento "DiffuseMap"
  5. Escribimos un nombre para la capa. Por defecto pondra DifusseMap
  6. Asignamos el tipo de extensión al archivo
  7. Escogemos el formato de salida de la imagen. (256x256, 512x512, etc)
  8. Y pulsamos render
Hay que tener en cuenta que cuando seleccionemos el objeto, este no esté aislado de los objetos que tenga a su alrededor para conseguir marcar las zonas de influencia de los objetos colindantes.

Render Elements
Para las versiones 1.5 en adelante Vray cuenta con un nuevo pase en elementos de render llamado VrayExtraText, este posibilita representar toda la escena con una sola textura mapeando todos los objetos, asi que para conseguir un pase de oclusión solo tenemos que añadir al slot correspondiente un VrayDirt.

Con esto creo que esta todo, espero que os sirva de ayuda.

6 comentarios:

  1. Rober dijo...:

    Enhorabuena por el blog

    Me han servido de mucha ayuda estos tutoriales. El de configurar el 3ds max, me ha venido de lujo, y ahora mirare este de ambient occlusion.

    Tienes pensado poner alguno mas? yo ando liado con los proxys, a la hora de poner mogollon de arboles en una escena, asi que ahi lo dejo como sugerencia ;)

    un saludo

  1. J. Ramón Ruiz dijo...:

    Gracias Rober. Pues si lo tengo abandonado un poco, ya sabes, estas cosas de escribir van por rachas. Estoy ahora haciendo un escenario que tengo intención de montarle un breakdown amplio, a ver si lo consigo terminar.

    Saludos

  1. Rober dijo...:

    Hola
    Yo sabia hacer el pase de ambient occlusion con mentalray, asi que con vray estoy un poco perdido.

    Lo primero, si se hace el pase de AO, despues de tener la escena finalizada, creo que seria importante apuntar, que habria q hacer unos pases previos (corrigeme si me equivoco)
    -Quitar las luces de la escena
    -poner el environment sin ningun mapa y fondo blanco
    -quitar en el menu render, el GI

    Bien, despues de seguir los pasos, tengo un pequeño problema. Me sale el render como muy oscuro-gris, como si le faltara iluminación. Estoy seguro q debe ser una tontería, porque en el menu environment, en exposure control>render preview me sale perfecto, todo blanco.

    Lo he conseguido disimular tocando la opción en el menu materiales, en el material del AO, en la casilla de la derecha del color que esta en 1, poniendolo en 100 sale mas claro, pero creo q esa no es la solución...

    espero que me puedas ayudar, ;)
    un saludo

  1. Rober dijo...:

    Hola de nuevo Jose Ramón
    al final he dado con la solución, resulta que si estas trabajando con "VrayPhysicalCamera", tienes que tener desactivada la opción de cámara "EXPOSURE" y tambien la de "VIGNETTING".

    Al final despues de darle vueltas, probé a hacer el render en perspectiva y funcionaba bien, por eso me di cuenta que el problema era la cámara...

    un saludo!

  1. J. Ramón Ruiz dijo...:

    Tu mismo te has contestado jeje

  1. RAINIER PARRA dijo...:

    excelente tutorial muchas gracias por compartir tu conocimiento vale mucho para aquellos que estamos iniciando en este mundillo del vray :3

 
José Ramón Ruiz © 2010 | Designed by Trucks, in collaboration with MW3, Broadway Tickets, and Distubed Tour