Creating Beautiful Caustics - LuxRender Wiki
Luxrender GPL Physically Based Renderer

Creating Beautiful Caustics

Personal tools

From LuxRender Wiki

Jump to: navigation, search


Creating Beautiful Caustics

This is a tutorial on creating beautiful tight caustics. For the longest time I could not figure out how the other guys were creating such tight beautiful caustics. Turns out it's not that difficult. The trick is in the light source. Smaller light sources lead to tighter, more beautiful caustics. I apologize for the visibly perceptible unfinishedness in some of the examples.

Large Light Source

Here is an example rendered with a large area mesh light. I say large but it was only 25 centimeters or about 10 inches square. This was typically the result I was getting.

Crystal egg big lightsource.jpg

Here is a screenshot of the light source.
Crystal egg big lightsource ss.jpg

Small Light Source

This second picture was rendered with a 1 centimeter or 0.39 inch square light source. Nothing else was changed.

Caustic demo.jpg

Here is a screenshot of the light source.
Caustic demo small light source.jpg


Another key thing to these types of beautiful caustics is no sharp edges. In the forum post for this particular project I was asked to show what it looked like with sharp edges. This is the result, faceted caustics. Same tiny light source as before, the only change is to the geometry, I removed the subsurf modifier and hit "set solid".

Caustic demo solid.jpg

So, how do you go from that to the above picture with the beautiful sweeping tight caustics. This is a bit off topic, but it's relevant so here goes. [This will be Blender specific.] From that geometry I hit "set smooth" and added a subsurf modifier with 4 levels of subsurf. This gave me a perfect egg shape. Then I went in to edit mode and I selected all of the verticies and added a crease of 0.5 (n-key). Consequently different crease values give completely different caustics. Those not using blender will see how much more rounded off the facets are in this next picture, which only has a crease of 0.25.

Caustic demo crease 0.25.jpg

Here is the same egg animated.
Crystal Egg Final.gif

Render Settings

In order for luxrender to find these caustics (jeanphi describes them as improbable light paths) you will need to use metropolis. I find that higher maximum consecutive rejects help find the caustics faster and thereby help with convergence. Also bidirectional is essential for great caustics. Here are my recommended settings for caustics. As you can see I saved this as a preset.

Mlt preset.jpg


To enable dispersion with glass2, you should switch from constant to cauchy, sellmeier, or one of the other options. In luxblend several presets are available for each. Cauchy A is the first parameter of the Cauchy equation (you can switch to inputing the IOR for the object by toggling the "Index" button). Cauchy B controls the amount of dispersion. Dispersion takes a very long time to converge. The example shown below was rendered to approximately 11600 samples per pixel.

Here are the settings for the following picture.
Dispersion manual.jpg Caustic demo dispersion.jpg