|
 |
Le 2023-05-05 à 11:56, Chris R a écrit :
> I have found in a few of my last projects that while doing a high-quality
> render, (0 threshold anti-aliasing, hefty radiosity settings, etc.), that about
> 98-99% of the scene is rendered in a reasonable amount of time, and then it
> seems as if no progress is ever made again. The one I am rendering now
> completed 98% in about 4 hours, but in the past 15 hours, with 10 patches
> remaining to render, it has made no progress whatsoever.
>
> This particular scene only has 2 light sources, a sunlight source as a 3x3 area
> light, and one other light source also 3x3. Most of the scene consists of
> isosurfaces, usually some sort of block whose edges and faces have been
> perturbed to give them texture. The finishes are all fresnel, and there is a
> tiny bit of reflection added in. (A previous scene with this problem completed
> 98% in less than a day, and then made no progress for another week before I gave
> up.)
>
> Lowering the radiosity settings or the anti-aliasing settings allows the
> rendering to finish, but at reduced quality.
>
> Is there any way to turn additional debugging output to see where the render
> engine is spending its time? What I'm afraid of is that some interaction
> between anti-aliasing, radiosity, and reflection is causing an infinite loop
> measuring against thresholds.
>
> Also, can someone verify that the rendering rate in the status bar (for Windows
> at least), is just total pixels rendered/total time? Is there any way to get a
> rendering rate over the past N minutes instead? For most scenes, once the
> render settles down, the rate gives me a good estimate of the time to complete,
> but in these long renders its not even close.
>
> -- Chris R.
>
>
Some ideas. Some things to try.
If it's inter reflection, then, lowering max_trace_level could help.
Alternatively, slightly increasing adc_bailout may help.
Can you do with a reduced recursion level for your radiosity ?
Don't use a threshold of zero for the antialiasing. Instead, use a small
value. Maybe something like 1/256, 1/768 or even 1/1500.
For your radiosity, try pretrace_end 0.00125 or 0.000625.
You may need to set minimum_reuse to a similar value.
pretrace_end 0.000625
minimum_reuse 0.00062
I've found that using the two value version for count often help improve
the quality without increasing the render time. Could allow you to use a
lower count value without sacrificing the quality.
count 8000, 100001
Use the importance feature. Give a lower importance to bigger objects.
#default{radiosity{importance 250/8000}}
Some small object, especially if used as a light source :
... radiosity{importance 1}...
Some big object :
... radiosity{importance 100/8000}...
If you find a pathological object, try duplicating it.
One will have the option no_reflection no_radiosity and the full texture.
The other will have a simplified texture, and maybe even a slightly
simplified geometry, and no_image. For an isosurface, that could be
halving the weight of the surface perturbation, or reducing it's frequency.
This can even be done for all objects in the scene.
Post a reply to this message
|
 |