XSIforum.com

Vray Optimization

0 Usuarios y 1 Visitante están viendo este tema.

Vray Optimization
« en: 14 Septiembre 2014, 05:37:45 »
Saludos!

  He de admitir que me he acostumbrado, muchisimo a Arnold, mi cerebro limitado se ha casado con su filosofia y cuando toco cualquier otro Motor de render mas convencional mi cerebro se colapsa. Estoy acostumbrado a que los AA samples multipliquen el resto de samples que existan en la escena y ahora en Vray supuestamente "los dividen". El caso es que no estoy consiguiendo ningun tiempo de render que me guste, casi todos los tests que hago para cosas simples andan por los 5 o 6 minutos minimo. He leido y buscado varias formas de optimizar tiempos de render  y mis tests no parecen seguir las mismas reglas. Ademas no consigo ninguno de esos renders que seam realmente limpios de ruido.

  Solo tengo una escena con una esfera duplicada como instancia varias veces en la escena. Un unico shader que es una combinacion de una capa de pintura roja con un clear coat encima. Ambos con un Reflection Max Depth the 1.  En el DMC settings tengo MAX 5 MIN 1 THRESHOLD 0.01. Como segun la informacion que he leido el MAX divide las subdivision de las luces, empece aniadiendo 5 en las luces para obtener un total de 1 por luz... Pues por lo visto no, da lo mismo que las ponga a 1 o 5 o a 10 que los resultados son muy aleatorios y creerme que he hecho multiples tests para intentar confirmar alguna teoria y nada.

  Viendo que estoy fallando con mi intento de comprender como funciona Vray para produccion alguien que haya tenido mas experiencia podria explicarme que estoy haciendo mal?

Muchas gracias por adelantado

Re:Vray Optimization
« Respuesta #1 en: 14 Septiembre 2014, 18:44:57 »
Subir los Max. Subdivs no sirve de nada si el Threshold no esta actuando.
Me explico, el Threshold es la diferencia entre dos pixeles contiguos, si Vray no ve esa diferencia, ya puedes subir los Max. Subdivs a 1 millón que nada va a cambiar.

Para empezar tienes que trabajar siempre mediante LWF, pero solo corrigiendo el sampling, no el color (adaptive mode only).
Esto hace que la diferencia entre pixeles contiguos sea mayor, porque el sampler ve mucho mas detalle. Al ser mayor, te aseguras de que el threshold actúa siempre. Si no se corrige, la diferencia entre pixeles es mucho menor y el threshol no sera capaz de ver la diferencia de valores.

Si la diferencia entre los pixeles contiguos es mayor al valor del threshold, va a subdividir el pixel tantas veces como este indicado en el Max Subdivs. Asi que con LWF siempre va a ser mas sencillo para el sampler.

En Iron Man pr ejemplo, la mayoría de planos iban con threshold 0.005 algunos ni eso, con 0.01 salían con un ruido aceptable para producción. Los problemas gordos venían cuando había mucha geometría con motion blur cercano a cámara. Ahi había que utilizar threshold mas bajo.

Como Max. Subdivision creo que nunca he utilizado un valor mayor a 25
Como Min. Subdivision generalmente utilizo 2
También es importante activar full adaptive system para que le render sea mas rápido. Settings -> Adaptive Amount = 1

Poco mas que eso. Déjalo así y solo tienes que tocar el treshold. 0.01 servirá para muchas cosas, 0.005 sera tu valor mas utilizado y de ahi para abajo con cosas que necesiten limpiarse de ruido mucho.

Después suelo dejar el ray RT como RT Engine settings -> Adaptive sampling -> Max. Noise = 0.01 para lighting dev y look dev.

Con esto siempre he ido tirando.

Re:Vray Optimization
« Respuesta #2 en: 14 Septiembre 2014, 22:38:45 »
mmmmmmmmmmmmmmmm Interesante... Estoy haciendo unos tests y si que parece que puedo limpiar mas zonas sin tener que subir mas los Max subd. He conseguido reducir los renders cambiando alguna cosa mas en la escena asi que por ahora mejor. Me habia entrado el panico XDD  Imagino que los renders que comentas de Ironman eran puro BruteForce verdad? Que opinion tienes al respecto?

Re:Vray Optimization
« Respuesta #3 en: 15 Septiembre 2014, 10:06:05 »
Una cosa, la mayoria del ruido en vray viene del specular, que no se porque no lo gestiona bien. Algo muy comun es sacar el passe de specular/reflection por separado y pasarle un denoise. Arregla casi todos los problemas sin necesidad de subir mucho los tiempos de render para limpiarlo en el propio render.

Por otro lado, raramente utilizo GI. Aumenta el tiempo de render entre un 30% a un 80%. En IronMan creo que lo utlizamos en algun plano, pero vamos, en ocasiones contadas. En ese caso, si, brute force solo primary rays. Secondary rays aportan muy poco a la imagen y suben los tiempos de render. Descartados.

Re:Vray Optimization
« Respuesta #4 en: 15 Septiembre 2014, 10:10:45 »
Eso iba a decir... no quiero entrar en debates pero me da la sensacion de que el Brute Force the Vray no esta muy optimizado... Irradiance y Light Cache parecen buenas herramientas aunque en ocasiones complejas de controlar (y obviamente no aptas para personajes animados). Arnold puede ser una putada para interiores pero me sigue sorprendiendo lo rapido que es con GI.

Lo del Spec/Reflection ya me lo han comentado algunos companieros. Espero poder hacer una pequenia animacion de camara para probar esas cosas
« Última modificación: 15 Septiembre 2014, 10:17:42 por Soth3dlife »

Re:Vray Optimization
« Respuesta #5 en: 15 Septiembre 2014, 10:25:24 »
Tu lo has querido, toma chapa... :)

Vray es muy bueno, pero como cualquier software, todo depende del proposito. Mi experiencia es principalmente con hard surface. Vehiculos, entornos, robots, etc. Lo utilice durante una temporada en IronMan 3. Algunos planos salian con RenderMan y otros con Vray. Los tiempos de render, calidad de imagen y sobretodo, facilidad de uso, fueron los puntos clave de utilizar este software, y tambien, claro esta, que el major vender (Digital Domain) utilizada Vray tambien en este proyecto, con lo que era mas facil intercambiar informacion con ellos.

Notas basadas en Vray 2.x utilizado en IronMan 3 hace 3 anios aprox.

Memoria.

La utilizacion de memoria en Vray es bastante eficiente, pero tanto los modelos como los shading networks tienen que estar bien optimizados. El problema gordo de memoria es cuando hay una cantidad de geometria grande con muchisimo motion blur. En este caso la memoria se dispara y los tiempos se hacen enternos. Tambien es muy importante utilizar convertir las texturas al formato mipmap de Vray para ahorrar mucho tiempo de render, ya que sobrecarga muchisimo menos la memoria.
La cantidad de aov's tambien aumente el uso de la memoria.

Samples y settings.

El ruido es un problema comun en cualquier raytracer. No hay reglas generales, la optimizacion tiene que hacerse plano a plano, pero con un poco de experiencia, deja de ser un problema, todo sigue una logica.
Los samples a tocar son: Global samples (threshold) shaders y lights. Muy importante no volverse loco subiendo los global samples, para optimizar bien una escena muchas veces conviene tocar mas los shaders y lights.

Noisy specular.

El mayor problema de ruido en Vray aparece con los speculars. Cuando Vray trata de filtrar el contraste en valores de mas de 8stops. Incrementar los samples (threshold) no ayudara mucho y los tiempos de render se disparan. Para solucionarlo basta con reducir el rango dinamico de la escena, ya que no vamos a necesitar tanto nunca. Tambien ayuda aplicar un denoise al passe de specular.
Utilizar area lights tambien ayuda a una mejor distribucion del specular, mejor que utilizar spotlights de Maya.

Motion blur.

Motion blur en Vray es bueno, rapido en condiciones normales. Si el objeto esta cercano a camara y se mueve muy rapido, crea problemas de memoria y el render es muy lento. Este es un problema comun a todos los render, en RenderMan puede ser facilmente solucionado mediante eye-splits, pero en Vray aun no he encontrado como.

Global Illumination.

La velocidad y calidad en general es buena. Aniadir secondary global illumination aniade entre un 30% a 80% de tiempo de render. En general solo utilizo primary GI brute force, ya que secondary GI no veo que aporte demasiado a la escena, y los tiempos se disparan.

bugs: (y lo pongo en ingles que ya lo tengo escrito y no me apetece traducir).

    Object property sets can easily clash
    Shaders are not customizable and without the full control on the proprieties
    Non fully customizable image file name, ie. the element separator
    No an extensive render statistics like prman does
    Image frame buffer has limited features and usability
    It has a basic set of lighting tools
    Proxies not well supported, non scalable or customizable
    Missing overscan attribute built in
    It does not output deep-zdepth pass for deep-compositing
    Extensive variety of secondary outputs but missing some typical rederman’s ones
    Image texture input file is parsed regardless it has been used or not
    Bad integration with some of the maya nodes, ie. simplerinfo
    Filtering displacement maps can give some rendering issues
    Maya layer manager is unreliable, not flexible and not user friendly
    Maya crashes often, ie. loading exr files in the viewport
    Difficulty to maintain the maya scenes clean and stable
    Missing a shader package system
    A very large number of nodes in the scene makes Maya scene unstable

Re:Vray Optimization
« Respuesta #6 en: 15 Septiembre 2014, 10:34:16 »
dios XDDD bueno sigo sin entrar debate. Me alegro de tener tu input :D

Re:Vray Optimization
« Respuesta #7 en: 15 Septiembre 2014, 12:23:34 »
 Buena chapa!!

Re:Vray Optimization
« Respuesta #8 en: 17 Septiembre 2014, 15:22:30 »
Vale, me estoy friendo el cerebro y mucho. Entender la filosofia de este engine me esta matando las pocas neuronas que me quedan;

  Estoy muy confundido, osea, el Max Subd del DMC es un "global" divider de todos los subdv propiops de los materiales, luces, etc. A la vez tienes el Adaptive Amount que es un valor que define que porcentaje de Subd seran "Fixed Sampling"(Subdv de materiales y luces) y cuanto sera DMC... Si no estoy mal interpretando nada significa que si tengo el Adaptive Amount a 1 ( only DMC ), las subdv de los materiales y luces no se deberian tener en cuenta no?

  Pues por lo visto no porque estoy haciendo tests y sigue influenciando... Ya veras como al final no aprendere a optimizar con Vray XDDD

Re:Vray Optimization
« Respuesta #9 en: 29 Noviembre 2014, 07:24:49 »
Hace mucho tiempo que no actualizaba mi situacion. Mas o menos ya lo tengo por la mano y ha sido gracias a esto:



es muy interesante. Aunque no habla de varias situaciones me fue muy bien para entender la base. Espero que os ayude al resto tambien.

PD: Aunque no es lo mismo tambien me ha ayudad a entender la filosofia de Modo renderer asi que recomiendo que le echeis una ojeada ( Me he mal acostumbrado con Arnold... )