30 ene 2012

Lección 15: Mental Ray II

::: Mental Ray (II)

>Render Setup

+Pestaña Indirect Illumination > Global Illumination:

G.I. se basa en la emisión de fotones; podemos regularlos en los parámetros del render o en los de la luz. 
::: La gran ventaja de GI es la rapidez con la que reparte la luz indirecta. Gracias a GI vamos a deshacernos de uno de los problemas de las escenas con poca luz: usar un número de rebotes alto para iluminar bien aumentando el tiempo de render.
::: GI se calcula para toda la escena, independientemente del encuadre de la cámara.

Los valores por defecto son los siguientes:

Max. num. photons per sample=500
Max. sampling radius=desactivado
Average GI photons per light=20.000



Esto quiere decir:

·El sol (la luz que tenemos en escena) dispara 20.000 fotones. De esos 20.000, muchos se colarán por las ventanas y rebotarán en los objetos de nuestra escena, depositando luz indirecta. 
·Para recolectar esa luz, dividimos la escena en trozos del radio Max. sampling radius; como este valor está desactivado, automáticamente Mental Ray utiliza un radio equivalente a 1/10 el radio de una esfera que supuestamente encerrara a nuestra habitación. 
·Una vez dividida la escena en trozos de esos X m, buscamos dentro de cada trozo 500 fotones rebotados (Max. num. photons per sample) y procesamos la cantidad de luz.

::: Es importante encontrar el equilibrio adecuado entre el número de fotones buscados, el radio de búsqueda y los fotones totales emitidos.

El valor de max. num. photons per sample especifica cuántos fotones queremos tener en cuenta para calcular la iluminación indirecta en cada zona del radio especificado en max. sampling radius. Cuantos más fotones encontremos, más suave y mas calidad tendrá la solución de GI. El problema está en que yo no puedo tirar un número muy bajo de fotones desde Aver. GI photons per light y luego pedirle 5000 fotones en Max. Num. photons per sample. No los va a encontrar. Tampoco los encontraría si buscara en un radio muy pequeño; cuanto menor sea el radio, obviamente, menos fotones caben.


¿Cómo podemos encontrar más fotones? Solo podemos hacer 2 cosas:

· Lanzar más fotones.
·Ampliar el radio. Está claro que si en 45cm encontramos 75 fotones, en 100cm habrá más... El problema de ampliar el radio es que si cada vez buscamos en zonas más grandes perderemos detalle en la iluminación, llegando a quedar plana si nos pasamos.
En ese sentido os recuerdo cómo calcula automáticamente Mental Ray el radio idóneo para la escena: 1/10 el radio de una esfera que envolviera nuestra escena. Luego cada escena tiene su propio radio, y es conveniente dejarlo como está en la mayoría de las ocasiones.

Así que para suavizar la escena y conseguir mayor calidad, dejamos el radio y lanzamos más fotones. Pero, ¿cuántos más? Se trata de mantener siempre el número de fotones encontrados al máximo sin pasarse ni quedarse corto.

::: Si buscamos el doble de fotones, debemos tirar 4 veces más fotones en Average GI photons per light.

::: Si a Final Gather le damos un mapa de fotones demasiado detallado funciona mal. Tened en cuenta que, cuando trabajemos con FG y GI, primero calculamos la GI y luego FG se calcula según el mapa de fotones que hayamos calculado previamente. Luego para los mismos valores de FG nos podemos encontrar con resultados distintos en función de cómo hayamos calculado la GI.


Tal vez con una densidad de valor bastante alto no consigamos eliminar las manchas. De hecho, Initial FG point density, como ya hemos comentado, sirve para generar detalle, no suavidad. Podemos:
· Aumentar el número de rayos.
· Aumentar la interpolación

::: Aumentar en exceso la interpolación nos dejaría la escena muy suave, pero plana. Si subimos un poco podemos suavizar sacrificando algo de detalle, que luego volveríamos a sacar con Ambient Occlusion.


Además de los 3 valores principales de FG (densidad, rayos e interpolación) tenemos otros controles que quizá puedan ayudarnos. De ellos destacamos el parámetro Noise Filtering.

Noise filtering desestima rayos de forma selectiva de la solución de FG eliminando aquellos que son mucho más brillantes que los que están a su alrededor. Por ejemplo, si en una zona de nuestra escena la luz indirecta tiene una luminosidad media y de repente aparecen rayos bastante más brillantes, está claro que ahí tendremos un problema de manchas. Con noise filtering podemos eliminar esas zonas más brillantes igualando la luminosidad y haciendo desaparecer las manchas, a costa de algo más de tiempo de render. Al eliminar esos rayos es posible que la escena quede algo más oscura, lo que corregiremos con el control exposición.

·Use Falloff (Limit rays) nos permite especificar desde qué distancia y hasta qué distancia se calculan los rayos emitidos en cada punto de FG. Obviamente modifica el comportamiento real de la luz, pero para escenas conflictivas nos puede ayudar a
minimizar la aparición de manchas reduciendo el alcance de FG.

::: La mejor solución es añadir más luz a la escena para que a FG le cueste menos procesar y suavizar.


Para conseguir mayor definición en esas zonas donde la luz queda oculta entre los objetos que se tocan o están muy juntos, podemos:
· Aumentar mucho más la densidad. Nos tendríamos que ir a valores realmente altos a costa de tiempo de render.
· Usar Ambient Occlusion.

::: Antes de usar Ambient Occlusion vamos a facilitarnos las cosas:
Lógicamente, mientras estamos probando y cambiando valores de FG tenemos que volver a calcularlo en cada render. GI también la estamos calculando en cada render, pero los valores ya los tenemos fijos. Ahora que ya hemos encontrado los valores de FG que queremos podemos guardar esos mapas para no volver a calcularlos más.

Podemos reutilizar los mapas de FG y GI siempre que:
- no cambiemos sus valores
- no movamos ni añadamos objetos en la escena
- no cambiemos las luces
Y solo para FG:
- no cambiemos el encuadre de la cámara

En el panel de Render Setup (F10) nos vamos a la pestaña Indirect Illumination y bajamos a la persiana Reuse (FG and GI disk caching).

::: En 3DS Max 2010 se han añadido nuevas herramientas para el cálculo de FG en animaciones que también afectan a cómo se guarda el mapa de FG. Lo tenemos en el primer desplegable. En nuestro caso usaremos single, pues estamos con un render
estático.

En la sección Final Gather Map elegimos Incrementally add FG points to map files.
Esto hace que se guarde el mapa de FG. Debajo, pulsamos el botón (...) y elegimos dónde y con qué nombre queremos guardar el mapa de FG.

Una vez guardados los mapas vamos a evitar que vuelvan a ser calculados. Bajo Final gather map cambiamos la opción Incrementally add... to map files por Read FG points only from existing map files, y bajo Caustics and Global Illumination Photon
map
cambiamos Read/Write.... por Read Photons only from existing map files.


Ambient Occlusion (AO) tiene que ver con la iluminación ambiental pero no se calcula ni en FG ni en GI, es una propiedad de los materiales y se calcula en el proceso de render. Lo que hace es que, en aquellas partes de los objetos que están en contacto con otros objetos, genera una sombra de contacto para reforzar la que calcula FG y GI. Esto hace que los objetos queden mejor integrados y contorneados, eliminando la sensación de que un objeto parezca que esté flotando sobre otro o que no esté en contacto con él.
::: Los materiales tienen que tener AO activado. Esta opción la encontraremos en el Editor de Materiales > elegimos un material de Mental, como por ejemplo Arch. & Design > Special Effects > Ambient Occlusion.

::: Con la distancia (Max distance) reducimos el tamaño de la sombra de contacto a esa zona en concreto. Si aumentamos la distancia máxima la sombra se extenderá, generando un degradado o sombra suave desde la zona de contacto hacia el interior del objeto.

::: Si cambiamos Shadow color podemos aclarar u oscurecer la sombra y hacer que destaque menos.



::: Podéis encontrar un muy buen tutorial a este respecto en esta página.

¡A practicar!


No hay comentarios:

Publicar un comentario