Diferencia de tiempo renderizado a alta resolución
Estoy realizando un render con Vray en 3dsMax 8, el caso es que cuando lo tiro a una resolución de 800*530 el tiempo en completarse un cudradito destos del irradience map, es normal.
Pero cuando lanzo el mismo render, con mismas características a una resolución de 3450*2000ypico el tiempo en completar el mismo cuadrado aumenta un üevo largo.
A que se debe esto, no debería tardar lo mismo ya que el tamaño de la porción renderizada es la misma independientemente de la resolución?
Como lo puedo solucionar? Gracias.
Diferencia de tiempo renderizado a alta resolucion
Yo no uso ese programa, pero creo recordar que cambiando el tamaño del cuadro cambiaba el tiempo de render de la imagen total, de todas formas, por lógica pienso que es normal.
Diferencia de tiempo renderizado a alta resolucion
Veamos, veamos. Ayer se lo explicaba a Shenmue y a RavenX delante de unos cafeses. Atención, porque entre que la cosa puede que cueste de entender, y yo me explico cómo el culo, uno se puede perder:
Lanzas un render de 1000 por 500 a -3/-1. Sabiendo que la teoría del mapa de irradiancia dice.
, que si en min rate o max rate usamos un valor de 0 se calculara una muestra por píxel -> min rate = 0 / max rate = 0 : calcula como mínimo y como máximo una muestra por píxel, es decir, es lo mismo que usar Quasi Monte Carlo para los rebotes primarios..
que un valor de -1 equivale a una muestra cada 4 píxeles; -2, a una muestra cada 16, etc.
es sencillo averiguar que Vray calcula como mínimo una muestra cada 64 píxeles, y como máximo, una muestra cada 4. Espero que hasta aquí quede claro.
Resulta que el cuadro que renderiza de Vray tiene, pongamos, un tamaño de 64 por 64 (se puede configurar). Eso son 4096 píxeles que calcular. Imagina que tienes una silla en la escena que te ocupa eso, un cuadro.
Ahora, duplicas el tamaño de la imagen (que en realidad lo cuadruplicas) a 2000 por 1000. Si lanzas el render a -3/-1, donde antes se calculaban 4096 píxeles para la silla, ahora se calculan 4 veces más (16.384 píxeles). Por lo tanto, tardará 4 veces más en calcular el mismo cuadro (más o menos).
¿Cómo evitar esto? Es muy sencillo: por cada duplicación de imagen, resta un número al valor de min/max rate para tener una imagen de la misma calidad. Ejemplos:
-500 por 500 - -3/-1, esta solución GI equivale a.
- 1000 por 1000 - -4/-2, que equivale a.
- 2000 por 2000 - -5/-3.
No sé si se entiende.
Diferencia de tiempo renderizado a alta resolucion
Pero, yo estoy renderizando tanto a baja como alta resolución, con un tamaño de cuadrado de 64*64 píxeles, siendo en los dos casos 4096 píxeles a calcular.
No sé si estoy enfocando mal el asunto, pero lo veo así, debería tardar en calcular el mismo tiempo tanto a alta como baja, ya que son los mismos 4096, pero en vez de calcular x cuadros a baja resolución, a alta tendrá que calcular x más cuadros para completar la diferencia de tamaño? ¿no?
Si hago lo que tú comentas de reducir los min max samples del irradiance, no pierde calidad el render respecto a su hermano pequeño (baja resolución).
Diferencia de tiempo renderizado a alta resolucion
Tú tienes una silla que en una imagen de 1000 por 500 mide, por ejemplo, 40000 píxeles (200 por 200). Lanzas esa imagen con -3/-1, y tarda en calcular el área de la silla unos 2 minutos, por ejemplo.
Si aumentas la imagen a 2000 por 1000, el área que ocupaba la silla ya no es de 40000 píxeles, sino de 160000 (400 por 400), porque duplicas el tamaño de la imagen a lo largo y a lo ancho. Antes calculabas como máximo 1 muestra cada 4 píxeles (-1) para una superficie de 40000 píxeles. Ahora, calculas 1 muestra cada 4 píxeles para una superficie de 160000 píxeles. Por lo tanto, estas realizando más cálculo en la imagen en alta que en la imagen en baja.
Para que esto sea equivalente, tendrías que calcular como máximo 1 muestra por cada 16 píxeles (-2). Observa esta regla de tres:
Esto es lo que haces tú:
40000 píxeles / 1 muestra cada 4 píxels (-1)-> 10000 muestras.
160000 píxeles / 1 muestra cada 4 píxels (-1)-> 40000 muestras.
Y esto es lo que te digo que tienes que hacer:
40000 píxeles / 1 muestra cada 4 píxels (-1)-> 10000 muestras.
160000 píxeles / 1 muestra cada 16 píxels (-2)-> 10000 muestras.
Diferencia de tiempo renderizado a alta resolucion
Cita:
Pero en vez de calcular x cuadros a baja resolución, a alta tendrá que calcular x más cuadros para completar la diferencia de tamaño? ¿no?
Exacto, eso es. Una imagen 500 por 500 a -3/-1 tiene la misma calidad que una 1000 por 1000 a -4/-2, y así sucesivamente. Aunque también ten en cuenta que si haces esto, los errores que tuvieras en la imagen también los tendrás en la grande, pero a mayor tamaño aunque el tiempo de render de ambas imágenes (siempre que no hayan más cálculos de por medio) será aproximadamente igual.
Diferencia de tiempo renderizado a alta resolucion
Vaya, IkerClon, a veces te daría un beso en el trasero. Ya estoy guardándome el hilo e imprimiéndolo.
Diferencia de tiempo renderizado a alta resolucion
Si, buena lección colega.
Diferencia de tiempo renderizado a alta resolucion
Muchas gracias IkerClon, e consuegido reducir los tiempos, pero es lo que tú dices los errores que, antes eran pequeños, ahora son 4veces más grandes.
Diferencia de tiempo renderizado a alta resolucion
Tiene madera de profesor el IkerClon.
Diferencia de tiempo renderizado a alta resolucion
Disculpen que reviva este hilo, pero es que, estoy con un problema, estoy renderizando esta escena levemente compleja. Y he visto que el maestro IkerClon entiende mucho del asunto, estoy tirando esa imagen con 1500 por 639 con Light Caché (1000 en default), y irrmap en medium(-3,-1), con a catmul-rom(default). Necesito sacar la imagen a por lo menos 5000 por 2130. Y he hecho una prueba a 3000 por 1280 y el tiempo de render ha subido de 5:00 horas para casi 20 horas, y estoy pensando que va ser casi imposible renderizarlo a 5000, no sé qué hacer, y me di con este hilo sobre la teoría de las proporciones y muestras, que para ser sincero no entendí muy bien, otra problemas es que cuando le subo el a a 3,6, el max se cuelga, gracias de antemano maestro IkerClon.