Page Loading... please wait!

This message not going away?
Ensure Javascript is on and click the box
Jan 22, 2019 - 12:38 AM  

Realsoft Caustics

(1108 total words in this text)
(8762 Reads)  Printer-friendly page
Tips and Tricks

Realsoft Caustics

Some findings findings about Realsoft V4 Caustics by Mark Heuymans


Don't you love watching water reflections play on a wall, or a candle flame projected on the table by a glass of wine? These are just some classic examples of 'caustics' - the patterns generated by reflected or refracted light rays.

While experimenting with Realsoft3d's new caustics features I encountered some caveats which may be worth sharing. It might save others some time...

The system is capable of generating very detailed and realistic caustics. However, it's not always easy to get nice results quickly because there are so many combinations of settings. Sometimes it seems as if things are happening at random.

The test scene

First, I created an extremely simple test scene. A wall to receive the light, a floor surface to generate the caustics, a ceiling to cast a shadow on the wall to make the pattern stand out more. A cylinder in front of the wall to test pattern continuity. A Distant light source and a camera facing the wall.

A reflective floor material with bumps to generate an interesting pattern, like water - or rather mercury in this case.

You can download the test scene and go on from there.

The settings

As explained in the manual, you need to do at least two things to get caustics:
  1. Activate 'caustics' in the Render Settings (Misc tab)
  2. Activate 'Render caustics' in the objects (Col tab) that you want to receive caustics.
Results can vary greatly, depending on various settings:
  • Resolution of the caustics mappings as defined in the Properties window of the receiving object: tab Col => Caustics Map/Width, Height.
  • Sampling rate of the caustics calculations in Render Settings => Misc.
  • Brightness and Automatic brightness scaling, also in Render Settings.
The other parameters in the test scene: Sampling = 72 (pretty high already), Brightness =3.0, Atomatic brightness scaling = OFF.


Resolution of the caustic mapping is one of the most important factors. Obviously, the higher the resolution, the more details and the more memory consumption.

In the picture at the left, the wall has a resolution of 300x300 pixels, the cylinder 200x400. The pattern is unsharp, which is fine for previews but for a nice picture the resolution should be higher.

OK, let's double resolution to 600*600 and 400*800 without changing anything else.
Yes, there is more detail, the patterns are sharper. But notice that brighness has changed, it has become much darker. First thought that pops my mind: maybe this is because "Automatic brightness scaling" was turned off?, OK, let's turn that on and see what happens... I won't bother including the picture, suffice to say that it has become even much darker, almost black, regardless of resolution. Maybe increase Brightness then? Yes, that works, I found that a value of 20.0 results in a similar image..

Now I wonder what will happen if we restore the resolution of the wall to the original 300*300. Will it become lighter? See next picture.
Well, the blur has returned as expected and the brightness of the wall seems a bit bright but ok. But now the cylinder caustics have darkened! Is this what Automatic brightness scaling does: compare different caustic maps and re-adjust them somehow?

For further experiments let's turn it off again. Too unpredictable.

OK, set resolutions again to 600*600 for the wall, 400*800 for the cylinder and Brightness in Render Settings to 3.0. This time let's see what Sampling rate does(also in Render settings properties). My initial setting of 72 is very high, let's halve it.
Compare this to picture 2. Every setting is identical except Sampling rate which is 36 here. Aargh, it has become too dark! Doubling Brightness restores this and then you notice the quality difference.
For the sake of clarity, I'll again halve sampling rate to 18. Rendering is much quicker, obviously. This time, no matter how high Brightness is, it remains too dark!

Apparently, sampling rate must be at a certain minimum for Brightness to have an effect. In this example, everything above 3 has no effect, whether Automatic brightness scaling is on or off.
Finally, I discovered that the geometry of the objects also has great impact on quality and brightness of the caustics.

To demonstrate this, first restore settings to those of picture 2: resolutions 600*600 and 400*800, sampling = 72, auto-brightness scaling = OFF, brightness =3.0.

Then, double the wall's width (Properties/Spec/Lengths =>Width or use the handle) and render again. Because we did not adapt horizontal resolution, it's to be expected that sharpness will deteriorate. But oh no... brightness has increased, see picture! It has the same effect as decreasing resolution. It's probably the size/resolution ratio that doesn't only affect sharpness, but also brightness.

So, increase width of the map to 1200 to keep horizontal sharpness the same. See below, it worked!


Realsoft offers very powerful caustics rendering tools. However, the various settings often have an unexpected impact on the caustics' brightness. The 'automatic brightness scaling' option in Render settings doesn't help much, at least I didn't figure it out 100%: sometimes it works for one mapping in the scene, while others are affected unwantedly. It's just hard to grasp what exactly is 'scaled automatically' and how.

One crucial setting is the Sampling rate in Render settings. If it's too low, high brightness settings have no effect, whether the auto-scaling is on or off. I guess in such cases there is just not enough information in the map to do much with it. The message: use high settings! You may have to wait a few minutes extra but it's worth it. Anyway, the caustics calculations' rendertimes are very acceptable, I rendered a big animation in ~12 hours (3.6 MB, DivX5.02).

The influence of map resolution on brightness puzzled me. Generally, a high resolution means low brightness so you'll have to test-render with various brightness settings.

The same is true for the geometric size of the caustics-receiving objects. Rule of thumb: a large object needs a higher resolution. Enlargement of an object without increasing map size means loss of sharpness and brighness increase (if auto-brightness scaling is off). This can be problematic in scenes with very large walls that are close to the camera. Maybe it's best to divide the scene in smaller pieces with multiple mappings?

Finally, something completely different: did you realize that caustics generate light? Here's the same scene with global illumination activated.



 Log in Problems?
 New User? Sign Up!

Realsoft Graphics
Copyright © 1989 ... 2012
Realsoft Graphics