Hola, esto de los nodos es simplemente genial, hoy estaba haciendo otra prueba de un interior iluminado por la luz que entra por una ventana (escena sacada del tuto de dideje en 3dpoder, si a alguien le interesa hacer pruebas con ella no hay problema con subirla pasada a XSI 5.0), la escena es más de lo mismo (FG y GI) pero descubrí algo simplemente impresionante a nivel de shaders.
La cosa es así, seguramente se habrán dado cuenta que al tener materiales con glossy el cálculo del FG se dispara, esto tiene su lógica porque la luz no rebota de la misma forma en superficies con glossy que en las sin glossy (donde el rebote es directo), para que sea más fácil de entender hice un esquema (no encontré un link con el dibujo pero si lo he visto en varios sitios), en el fondo esto en términos prácticos no importa tanto pero creo que es importante saber el porque de las cosas para entender que haremos más adelante.
Como se ve la luz se dispersa al rebotar en superficies con glossy mientras que en superficies completamente lisas no sucede eso.
Ahora la parte importante, a traves del shader
ctrl_ray de Francesca Luce (habitual en CGTalk, esta chica es un genio) podemos controlar el comportamiento de los rayos en el final gather ya sea en la etapa del pre-calculo (el cálculo que hace antes de "dibujar" el render) como en la del cálculo propiamente tal (mientras lo dibuja). A que viene todo esto? a que podemos conectar un nodo del material sin glossy para el cálculo del FG y otro con glossy sólo para la apariencia (sin influir en el FG) con lo que nos ahorramos muuuuuuuuuuuuuuucho tiempo de render (es una maravilla!), con esto podemos usar materiales con glossy sin afectar en absoluto el cálculo del FG engañandolo y simplificando su cálculo (también es posible que simplemente no calcule el FG para el material pero se pierde el sangrado).
Para comprobar que esto funcione me puse con una escena de un interior donde el piso era una "madera" con bastante glossy en las reflexiones, la escena tiene GI y FG pero es más de lo mismo, lo interesante es el shader del piso y como afecta en cuanto a tiempos de render la escena seteada exactamente igual. Pongo una captura del render tree donde se ve como armé el material (esto de los nodos cada vez me gusta más!!!)
Adjunto las 2 pruebas con exactamente la misma configuracion de todo salvo el shader. En la primera se demoró 00:05:35 y usé el shader ctrl_ray (tal como en la captura) mientras que la segunda prueba se demoró 00:13:07 y la única diferencia fué que no usé el ctrl_ray (conecté directo el phong_glossy al surface). Como ven en el render no se aprecia diferencia alguna mientras que el tiempo de render se redujo a menos de la mitad, simplemente impresionante!
No sé si me enredé mucho con la explicación, puede parecer algo "complejo" pero no es tal, es sumamente rápido de hacer (incluso para mi que llevo 1 semana con xsi) y si se entiende la lógica de todo esto se puede ampliar el concepto a cualquier material que desvie el rayo de la luz y haga que el cálculo del render sea más pesado (y por ende lento).
Salu2