Blur Radius and other new settings

Started by rcallicotte, July 10, 2008, 10:01:13 AM

Previous topic - Next topic

rcallicotte

Would someone explain -

Blur Radius
Subdivision Cache
So this is Disney World.  Can we live here?

choronr

Not sure; but, I think the 'blur radius' has to do with 'softer shadows'. No comment on the other.

old_blaggard

Blur radius has to do with preventing the flickering problem seen in animations.  If you encounter that problem, increasing the Blur radius will help decrease it or even remove it altogether.

Subdivision Cache is the maximum amount of RAM each thread can use.  Generally, you will get better performance out of a smaller cache, to a point, but there are some scenes that might require lots more to run at peak efficiency.  Unfortunately, I'm not sure what kind of scenes those are and have just left the subdivision cache at default.
http://www.terragen.org - A great Terragen resource with models, contests, galleries, and forums.

rcallicotte

Thanks guys. 

O_B, do you checkmark Subdivision Cache?  Does blur radius have anything to do with light and shadows at all, besides what you explained here?
So this is Disney World.  Can we live here?

old_blaggard

As I said, I don't do anything to subdivision cache at all - the default works just fine for me.  I don't believe that Blur radius has any other effect on light and shadows, beyond possibly changing the lighting a small amount as a side effect of having "blurred" away the flickering.
http://www.terragen.org - A great Terragen resource with models, contests, galleries, and forums.

Tangled-Universe

#5
I'm not sure whether they are all correct, but I'll give it a shot:

Blur radius:

Start a new scene, lower your camera to 2m and face it up a bit. Put a sphere with 2-3m diameter in front of it, sitting on the ground so you can see its shadow.
Render the sphere's shadow with GI 2/2, blur radius 0 and blur radius 10 and you'll see the difference.
It basically blurs the GI effect on the surface.
If you don't use blur the bounced light will have a sharp projection on its surface. It can result in a plastic/shiny appearance which doesn't look good on natural surfaces most of the times. Unless it is wet maybe.
If you increase this value the bounced light will be projected softer on the surface. It blends better and is also less bright.

Subdivision Cache:

the renderer splits the render in many buckets and/or subdivisions. Aren't buckets just subdivisions? Whatever...I think the cache just addresses a certain amount of memory to each bucket/subdivision. If you increase this value it will probably reduce populator errors I think.
At least, after increasing I lost many of them.

Supersample prepass:

this is somewhat difficult to explain but I'll try. I'm probably confusing GI relative detail with sample quality, but here it goes :)
If you increase GI relative detail, more GI light rays will be send/sampled by the camera resulting in better coverage of the captured GI. The GI sample quality determines 'the resolution' of the sampled GI.
As explained in the official announcement the supersample prepass increases the amount of image samples.
So the amount of GI sent/sampled by the camera is the same (same GI quality) but the sample-pattern is finer.

I can say for myself that this supersample prepass did make my rocks look smoother and softer.

rcallicotte

TU, THANKS!!!  This description makes more sense than o_b and I'm hoping to put it to good use.  Brilliant!

Cool job, Planetside!!  Excellent work, Matt and Jo.  I'm enjoying this.
So this is Disney World.  Can we live here?

Matt

#7
Here are some notes that I made about the subdiv cache. They need to be cleaned up for inclusion in the documentaiton.

Subdiv cache

The subdiv cache stores microtriangles or partially subdivided triangles as they are generated for use by the ray tracer.

Normally the subdiv cache allocates memory as needed, in blocks of about 0.8 Mb (the specifics might change as I optimise things). During a render you will see memory use rise gradually. The speed at which it rises depends mostly on the roughness or complexity of reflective/transparent surfaces - generally the unpredictability and spread of the rays being cast into the scene. The cache is also needed for ray tracing shadows, and for this some scenes may be more demanding than others. Larger images and higher detail images are more demanding, as you would expect.

The maximum amount of memory that the cache will allocate is limited to whatever you specify (actually each thread has its own cache, each of which has its own prescribed limit which is the total limit divided by the number of threads). Once a subdiv cache reaches this size it is usually cleared and will be rebuilt (I need some horribly complex algorithms to make it do something more useful), but the allocated memory remains in use so it will appear that memory use merely levels off at that point.

If a scene is very demanding of the subdiv cache, specifying a larger cache size may help, but this is usually only a good idea on machines with plenty of physical RAM. The ray tracer is designed to be able to complete a render even with a small subdiv cache, but render speed can be severely limited.

With the normal allocation scheme it is possible that Terragen may run out of memory at any point during the render, resulting in subdiv cache allocation errors or allocation errors for other parts of the renderer. These errors are sometimes reported as allocation errors or they might manifest in other ways.

Preallocate subdiv cache

If you choose Preallocate subdiv cache, each cache will allocated its entire quota (adding up to the size which you specified) at the start of a render. The cache will not need to allocate any further memory during the render, but of course the render will be using a lot more memory right from the start. You'll have a much better idea of how much memory the render will need, especially if all shaders which load data (such as images) have already loaded what they need. This is usually the case if you have already been previewing a scene. Most memory allocation errors that might happen during the render will therefore happen very soon after the render starts. If errors occur you can reduce the cache size and try rendering again.

The preallocate option is disabled by default because many renders will not need the default 400 Mb and it would be burdensome on machines that do not have a large amount of RAM. With preallocate disabled, the renderer will only use as much as it needs.

Just because milk is white doesn't mean that clouds are made of milk.

rcallicotte

Thank you, Matt.  This is going into my TG2 notebook.
So this is Disney World.  Can we live here?

monks

QuoteIf you increase this value it will probably reduce populator errors I think.
At least, after increasing I lost many of them.

Yes, same here TU. I am rendering a heavily populated scene (lots of trees at max detail). I have 4 GB RAM and 16 threads max. I got sub div cache problems. Increasing sub div cache size has eliminated the problem for now (I'm increasing the detail settings...)

monks