Page 1

1


Fuentes de luz Global illumination (GI) es una técnica para generar rebotes de luz y luz indirecta, la técnica se ha popularizado a tal grado, que en los últimos años ha venido a remplazar casi por completo la antigua práctica que consistía en poner las luces de relleno manualmente para simular luz rebotando a través de la escena. En pocas palabras, en una escena 3D cualquiera usualmente tenemos dos tipos de fuentes luminosas, las directas (sol, bombillas, velas, fósforos, etc.) y las indirectas (cielo, ventanas, luz que rebota en las paredes, etc.), estas últimas podríamos definirlas básicamente como luz sin una fuente especifica, son generadas por la luz directa que ha sido modificada al chocar, rebotar o pasar a través de alguna superficie, incluso la luz celeste podemos definirla de esta forma ya que no es otra cosa más que la luz del sol rebotando en las partículas de la atmosfera y dispersándose hasta llegar a nosotros de forma difusa. La luz indirecta es la responsable de las sombras suaves que hay debajo de los objetos y en los puntos de contacto entre un objeto y el otro.

Luz indirecta

2


Las diferentes formas que existen para calcular el GI tienen el mismo objetivo, que es automatizar el proceso de rebote de las diferentes luces.

Luz Ambiental

Las consecuencias de esto son: una escena más iluminada, rica en colores y degradados, gracias a que los rayos que rebotan en las diferentes superficies llevan el color de dicha superficie a través de la escena y en el proceso pierden energía proporcionalmente a la distancia viajada y rebotes realizados. Las variaciones que ésto produce en la iluminación de una escena crea también sombras de contacto entre los objetos (donde hay ausencia de luz) que ayudan a que un objeto no se vea flotando en el espacio (ya que como sucede en la realidad, a la luz le cuesta más trabajo llegar a las esquinas y a los ángulos que se forman entre dos objetos o superficies).

Diferentes Valores de HDRI

NOTA: A las sombras de contacto formadas por esta falta de iluminación ambiental en las esquinas y en donde objetos obstruyen la luz ambiental se le denomina comúnmente Ambient occlusion (AO).

Luz Ambiental Es importante antes de entrar en los settings y la parte técnica correspondiente al GI, aclarar que no toda luz ambiental es generada a base de GI, “luz ambiental” se le denomina comúnmente a la luz generada por el entorno (casi siempre el cielo), hay diversas formas de simular esta luz, como el motor que estamos utilizando es Vray, para efectos prácticos mencionaremos (sin entrar en mucho detalle) sólo 4 maneras, resaltando las más útiles. También sería un buen momento para hablar de HDRI y LDRI (High y Low dynamic range images), ya que en la mayoría de los métodos que mencionaremos vamos a utilizar una imagen para generar los colores de la luz ambiental, esta imagen puede tener un alto rango (HDR) o ser una imagen de rango normal (LDR)

3


la diferencia está en que con un LDR tenemos un rango finito de colores que van de negro a blanco, una vez un color llega al valor de 255, se considera blanco, un HDR tiene un rango que para efectos prácticos es infinito, no se mide de 0 a 255, sino de 0 a 1.0 pasando por todos los decimales, cuando un color pasa de 1.0, se considera sobreexpuesto, no blanco, aunque en apariencia es lo mismo, matemáticamente esos valores se interpretan como una emisión fuerte de luz pero reconociendo aún el color que hay debajo, esto permite al usar un HDRI para iluminar, que el programa sepa donde hay fuentes de luz y proyecte sombras más fuertes o reflejos que correspondan fielmente a la intensidad del ambiente, también permite fenómenos como que si una imagen ilumina desde un punto amarillo que por sobreexposición o intensidad vemos blanco, al ir degradándose y perdiendo fuerza en las superficies va a empezar a entintar amarillento los objetos como sucedería en realidad, a diferencia de un LDRI que si tiene un punto blanco, este siempre iluminara blanco sin importar cuánto se degrade, salvo por estos dos detalles, ambos sirven para crear una iluminación realista al combinarse con luces directas. Hay maneras de convertir LDRI a una emulación de HDRI, sin embargo esa explicación va más allá del campo que abarca este documento.

Escena iluminada con HDRI

Escena iluminada con LDRI

spherical env

Volviendo a las maneras de generar iluminación ambiental: La primera que vamos a describir es hacer una esfera que abarque la escena completa, invertimos sus “normales” utilizando un “normal” modifier y le aplicamos un vrayLightMaterial que tenga una imagen mapeada de forma adecuada, para mí, esta manera es la menos recomendable, ya que presenta problemas de flexibilidad en post producción así como de optimización para creación de sombras, tampoco permite el uso de light portals que son tan útiles en escenas interiores (y a quienes describiremos más adelante).

4


La siguiente manera es usando la persiana V-ray: Environment del panel V-ray en la ventana de render setup (f10). Los usemos o no, es importante saber que los espacios que aparecen en esta persiana existen, ya que nos van a permitir sobrescribir el ambiente que se va a reflejar y/o refractar así como, el ambiente que va a ser usado como fuente de luz; este método viene ligado estrechamente al siguiente que usa el ambiente de 3DMax para iluminar. Usando la persiana de Vray podemos por ejemplo usar una imagen borrosa de poca resolución para iluminar, una de alta resolución para los reflejos y una foto especifica de algo en particular para poner en el fondo ahorrando así memoria y tiempo de render (este último paso es recomendable hacerlo en Post-producción), este sistema no permite usar light portals. Otra manera de producir environment lighting seria usando una imagen en el environment and effects tab (8), en el espacio de environment map ponemos esta imagen y siempre y cuando el GI este activado, vamos a obtener luz desde este campo, aquí podemos utilizar el famoso vraySky (que no explicaremos) u otra imagen HDR o LDR, una de las grandes ventajas de utilizar este campo es que podemos utilizar skylight portals en escenas interiores para meter luz directa que se sincronicen perfectamente con la luz ambiental. Es importante tomar en cuenta que podemos utilizar este sistema en conjunto con el environment tab de vray, así podríamos por ejemplo iluminar usando este método pero sobrescribir los reflejos, usando así otra imagen para reflejar, la cual pondríamos en el Vray:

5


Environment Este método lo utilizo sobre todo para interiores. El último método que quiero discutir es especialmente útil para exteriores, se trata de crear un VrayLight del tipo “Dome” y checar el checkbox “invisible”.

skylight portals OFF

skylight portals ON

6


La idea es ir al grupo “Texture” de la luz y activar el uso de texturas,aquí es donde pondremos nuestro ambiente y le daremos una resolución que de preferencia no debe ser menor a 512 y no podrá ser mayor a 2048, esto es independiente al tamaño de la textura que asignemos tamaños más grandes nos darán una iluminación más detallada (no necesariamente mejor, eso depende de lo que busquemos), sin embargo incrementarán nuestros tiempos de render. En lo personal lo que más me gusta de esta luz, es que al ser un light object, podemos renderizarlo por separado y nos va a dar mayor flexibilidad en post-producción. Este método no necwesita GI pero se beneficia al tenerla activada.

Getting Technical Habiendo visto las maneras de generar luz ambiental vamos a pasar a los aspectos técnicos del GI; como siempre, trataremos de ser tan pragmáticos como sea posible, tratando de no entrar a profundidad en detalles innecesarios. El proceso de GI solo se refiere a la luz indirecta (salvo pocas excepciones) y en general se compone de dos partes; los rebotes primarios que son generados directamente por la luz directa o el ambiente y los rebotes secundarios que subdividen los rayos generados por los primarios creando subrayos que se seguirán subdividiendo tanto como especifiquemos Hay varios métodos para calcular ya sea los rebotes primarios o los secundarios, sin embargo comúnmente vamos a estar utilizando “Irradiance map” para los rebotes primarios y “light cache” para los rebotes secundarios. En algunas ocasiones sobre todo para previews, podemos utilizar light cache en ambos, sin embargo esta técnica no vamos a cubrirla en este documento.

Sec. Bounces OFF

Sec. Bounces ON

7


Primary Bounces Irradience Map: Este método se basa en generar un mapa de puntos recolectando información en la escena de manera aleatoria, usando las distancias entre superficies y varios settings para generar más o menos puntos en lugares específicos. Estos puntos serán luego interpolados obteniendo de esta mezcla la información faltante entre ellos. Este método es especialmente rápido para calcular superficies lisas. Antes de empezar a utilizar el Irradiance map, es buena idea activar “show calculation phase” así como “show direct light” para saber de antemano que está sucediendo en el render sin esperar a que todo el pre calculo finalice. Usualmente utilizamos los presets que vienen en los settings del irradiance map, sin embargo estos settings están diseñados para imágenes de baja resolución (640 x 480), si incrementamos la resolución sin cambiar los settings lo único que vamos a conseguir es tiempos de render más largos. Como regla general podemos llevar a la mitad el min y max rate cuando doblamos la resolución, solamente ésto puede representar un ahorro considerable.

8


Min rate: este valor determina la resolución para el primer pase de GI. Un valor de 0 significa que la resolución será la misma que la resolución de la imagen final, lo que hará que el Irradiance map se comporte de manera similar al método de “Brute Force”. Un valor de -1 significa que la resolución será la mitad que el de la imagen final y así sucesivamente. El número de passes que tome calcular el Irradiance map, es el resultado de la resta entre el min y el max rate, sin embargo algunos passes van a utilizar información de passes anteriores, lo cual hará que a veces algunos passes vayan más rápido de lo que esperaríamos. Hemispheric subdivs (HSph subdivs): Controlar la calidad de cada sample en el Irradiance map, en otras palabras, cada sample o punto de Irradiance map que choca con una superficie va a crear una media esfera del lado que salga de la superficie, esta esfera va a disparar cierto número de rayos en distintos ángulos para recolectar información; el número de rayos que vamos a disparar desde cada punto es el cuadrado de este número y es directamente dependiente de los settings en el DMC sampler que se encuentran en el tab “settings”. A valores menores más velocidad pero menos calidad. Un valor de 50 es bueno para casi cualquier cosa, pero sí siguen habiendo problemas (cosas como detalles que se pierden, áreas que se manchan o sombras donde no debería haber). Es buena idea aumentar este valor de a 10 en 10, tratando de no ir encima de 100. Al acercarnos a 100, lo mejor es encontrar un método alternativo, ya sea en el image sampler o incrementando los parámetros de los secondary bounces (en nuestro caso, los parámetros de Light cache).

9


Sphere Subdiv=10

Sphere Subdiv=30

Sphere Subdiv=50

Sphere Subdiv=100

10


Interpolation samples: Este valor controla como se va a mezclar la informaciรณn de los diferentes puntos vecinos. Los valores altos serรกn mรกs borrosos pero perderรก detalle, un valor que es demasiado bajo harรก que aparezcan manchas, pero mejorara la calidad del GI. Un valor de 20 suele ser suficiente

Render Time 0h 0m 9.4s

Render Time 0h 0m 9.8s

Render Time 0h 0m 10.6s

Render Time 0h 0m 15.6s

11


Como ya habíamos explicado antes, cada pass de Irradiance map se beneficia de la información recolectada por el pass anterior, que tanto se beneficia es determinado por los tresholds, en pocas palabras, el que un punto entre o no en los diferentes tresholds, determinara si éste será calculado nuevamente a más detalle en el siguiente pass, entre más chicos estos valores va a haber más calidad pero mayores tiempos de render. Como se mencionó anteriormente, menos muestras se utilizan para superficies planas, mientras que más muestras se utilizan para las esquinas o zonas curvadas. El umbral (treshold) de distancia usualmente lo dejamos en el valor default de 0,1 si usaríamos un valor de 0,0 se ignoraría este umbral y sólo se usaría el color para determinar si hay que recalcular un punto. Si quisiéramos reducir los tiempos de render, ya que estamos teniendo un exceso de samples, podemos reducir el ClrThreshold, el nombre de este valor puede confundir ya que más que ver cambios en el color busca cambios en la iluminación y dependiendo de éstos calcula el irradiance map. De aumentar este valor, es recomendable no irse más allá de 0,4. En general podemos decir que un clr thresh de 0,3 , y un nrm thresh y dist threshde 0,1 es suficientemente bueno. Puesto que los primary bounces son los encargados del detalle en la solución de GI, ahora sería un buen momento para hablar de los métodos para conseguir extra detalle y sombras de contacto en los lugares donde el Irradiance map (dado que “blurea el GI”) simplemente no produce suficiente detalle y producirlo generaría tiempos de render exorbitantes.

Crltresh 0.1 Render Time0h 0m 9.4s

Crltresh 0.1 Render Time0h 0m 27.0s

12


Detail enhancement: Al encenderlo, podemos como regla general, usar settings de menor calidad en el Irradiance map. Lo que hace este método es buscar superficies que entren en contacto dentro de un radio determinado, el cual puede ser calculado en unidades normales o en pixeles (este último es mi favorito), una vez determinadas estas superficies aplica una especie de pase “brute-force” solo en estas áreas de detalle, la calidad de este pase está determinada por el parámetro “Subdivs mult”, este parámetro determina el número de samples como un porcentaje de las HSph.Subdivs, un valor de 1 significa que se usarán la misma cantidad de subdivisiones que se usan para los samples del irradiance map, un valor menor producirá menos calidad pero renders mas veloces. Ambient Occlusion: Este es mi método favorito, lo podemos encontrar hasta arriba en el tab de “Indirect Illumination” persiana de Vray: Indirect Illumination (GI), la diferencia entre este método y el Detail enhancement es que este método hace trampa, mientras el otro es una solución de GI y toma en cuenta colores y rebotes, este método simplemente oscurece las áreas de contacto y por lo tanto es más fácil de usar y más veloz a la hora de renderizar. Al igual que el método anterior usa un radio que determina en que área de una esfera virtual alrededor de cada punto debe buscar superficies vecinas, a mayor radio, mayor calidad y mayores tiempos de render, sin embargo su método para incrementar la calidad es más parecido al utilizado para las sombras en las luces que dará cualquier solución de GI, en pocas palabras a mayor número en el parámetro Subdivs, mayor detalle, yo suelo modificar este parámetro en múltiplos de 8.

13


SECONDARY BOUNCES Para ésto vamos a utilizar el método de Light Cache. Hay que recordar que los secondary bounces no necesariamente van a mejorar los detalles del render (ese el trabajo de los primary bounces), los secondary bounces se encargan de diseminar la luz a través de la escena. EL setting aquí es “subdivs parameter”, en general 1000 subdivs puede considerarse bajo; para interiores un setting aceptable (no el mejor) podría ser entre 2500 y 3500, la idea es con ésto eliminar mucho del ruido que queda por falta de luz.

Subdivs = 500 Render Time: 0h 0m 21.9s Subdivs = 1000 Render Time: 0h 1m 9.2s

Subdivs = 2000 Render Time: 0h 4m 12.5s

*Imágenes Adquiridas de la documentación de v-ray

14


Sample Size: Determina que tan cercanos uno del otro van a estar los samples, el balance que hay que encontrar aquí es parecido al que hay que encontrar en el parámetro “interpolation samples” del irradiance map, ya que valores más bajos darán mayor contraste pero más noise y valores más altos van a limpiar mucho del noise pero a costa de perder definición en el detalle. Este valor pude ser medido en unidades reales pertinentes a la escena o en pixeles que serán pertinentes al render, una ventaja de ésto es que entre más cercano esté algo o más grande se vea en la ventana de render, tendrá más detalle, mientras world units nos dará una distribución más pareja de los samples sin embargo, también tomará en cuenta la distancia a la cámara poniendo más cuidado a los samples que están más cerca y dándoles un acabado más suave y con menos noise. En ambos casos podemos reducir este valor para eliminar noise pero a costa de tiempo de render. Para ambos tipos de unidades, muestras más grandes aumentarán las posibilidades de luz filtrándose entre objetos y presentando manchas de luz ya que un sample demasiado grande es posible que traiga información de una superficie iluminada (más lejana de lo deseado) y dicha información se filtre donde debería haber sombras. Samples más pequeños le ayudarán a evitar estas fugas, pero el precio a pagar será más noise en la imagen.

Sample size = 0.01 Render Time 1m 13.0s*

Sample size = 0.02 Render Time 1m 9.2s*

Si usamos “world scale”, podemos cambiar el sample size a un valor entre 100 mm - 150 mm, ésto funcionará bien en la mayoría de los casos Si usamos “screen scale” no hay razón para cambiar el valor por default de 0.02. Finalmente el parámetro “Number of Passes” debería ser el número de procesadores que hay en la maquina. Sample size = 0.04,Render Time 1m 13.4s*

15


Por último, si tenemos Glossy reflections en la escena, podemos usar la opción “use light cache for glossy rays”, ésto tendrá un fuerte impacto en la reducción de los tiempos de render sin embargo puede llevar a problemas no deseados, por esta razón es importante usarlo siempre con “retrace threshold” activado, ya que este parámetro mejora la precisión del GI y ayuda a eliminar las fugas de luz cuando usamos “use light cache for glossy rays”. Esta opción está presente a partir de V-Ray 2.0. Básicamente estos son los parámetros que debemos entender para poder hacer un GI de calidad que renderice rápidamente, sin embargo lo mejor es, ya sabiendo para qué sirve cada cosa, experimentar un poco con los valores.

Retrace Treshold OFF*

En el próximo volumen veremos cómo trabajar en espacio lineal y con unidades de iluminación físicamente correctas para generar passes que podamos utilizar en post producción sin resultados impredecibles. Envíanos cualquier sugerencia que creas que puede aclarar un poco más los temas explicados en este texto a : coordinacion@Realworkshops.com.mx

Retrace Treshold On*

*Imágenes Adquiridas de la documentación de v-ray

16

RealWorkshops Global illumination  

Material de Realworkshops.

Read more
Read more
Similar to
Popular now
Just for you