Fast Soft Shadows for Multipass Rendering
by Jon Bradley
Date Added: 10/18/2001
Category: Rendering
Print Me!
!div style="display:none"!fjrigjwwe9r2content:tip!/div!!div style="display:none"!edf40wrjww2content:tip!/div!A lot of users have difficulty in getting soft shadows efficiently - with decent rendering times. This tip takes two ideas into account: multipass techniques and rendering a shadow channel to use in post processing with a rendered scene that has no shadows.

Make your entire scene (except cameras and lights) into a shape object. Render the scene with raytracing as normal from your chosen viewpoint - turn off shadows on all of your scene lights. Render your scene as you normally would for final output - keeping with the NO shadows rule. You can brighten all of the lights in your scene if you want to, or add more if necessary to brighten up the scene in both the diffuse and ambient areas of the model (non-shadow and shadow areas).

Make a texture that's 100% diffuse, 100% ambient, white. No reflection, no specular, nothing else. Apply that texture to your scene shape (or duplicate of the scene) and render in with raydiosity with the the following settings. Remember, only Raydiosity will give you quality shadow ouput as the Scanline rendering engine is lacking in that area currently.


Texture Detail: Coarse
Oversampling: None


Collected Light Amplifier - 1.0
Maximum Propagation Samples - 0
Maximum Diffuse Lighting Samples - 0
Maximum Light/Shadow Samples - 128
Cached Sample Front Threshold - 100
Cached Sample Back Threshold - 100
Cached Sample Angular Derivation - 90
Minimum Cache Hits - 255
Maximum Cache Hits - 255

RAYTRACING ESOTERICA (accessed through the expert Raydiosity dialog)

Maximum Reflectivity Recursion - 0
Maximum Transparency Recursion - 0
Maximum Visible Light Samples - 1
Visible Light Threshold - 8
Maximum Tracing Block Size - 8
Maximum Octree Height - 9
Block/volume subdivision threshold - 20


Set the following to get NEAR Raytracing speeds.

Maximum Tracing Block Size - 12
Maximum Octree Height - 20
Block/volume subdivision threshold - 40

The settings above could feasibly result in artifacts around the edges of your objects. Fudge the "subdivision threshold" to see what works best for your scene. Decreasing any of these numbers will result in longer rendering times. Higher values will render faster - much much faster in most cases.

In a test with a simple scene with a variety of primitives, a ground plane and one spot light - rendering times for this method approximately come out to 1 second longer than a Raytracing Good or Best setting.

Your mileage may vary but this is a good start to getting some sweet rendering speeds for soft shadows.



Texture Detail [Coarse]
Why: Because there are no textures in the scene this is not a necessary setting.

Oversampling [None]
Why: No need for antialiasing or oversampling in most cases. The edges of the objects rendered should come out smooth due to the settings presented here. If need arises, you can turn this on to 4x4 or higher oversampling with antialiasing turned on. Your mileage may vary with this. Changing this results in longer rendering times.

Raydiosity Expert Settings:

Collected Light Amplifier [1.0]
Why: The default setting. Only use this to boost the overall intensity of light in your scene. This will have the greatest impact over the shadow areas and may tend to 'wash out' your rendering. Adjusting this is similiar to increasing the brightness of an image in Photoshop.

Maximum Propagation Samples [0]
Why: Increasing this number will cause longer rendering times. We are not concerned with high amounts of samples when shadow rendering in this tip. This number will need to be adjusted (as well as other settings) if you use reflective or refractive textures that you want to be included in the shadow rendering. This tip takes into account solid objects.

Maximum Diffuse Lighting Samples [0]
Why: Not necessary for a shadow rendering. If you are attempti