Photon Mapping for Reflective Caustics
Setting a scene for reflective caustics requires a reflective object which will reflect photons back in the scene, a light which will emit photons and a surface which will receive the photons.
In the example scene, the reflective object is a ring, the light is a klieg light and the receptive object is a simple floor.
Rings are often used in caustics test scenes because they exhibit a nice characteristic cardioids caustics.
Here again, we shall start by setting the scene without regards to the caustics themselves. So the Radiosity attribute should be turned OFF for now.
Light setup
Type
Here again, the light is a klieg light for the same reason of trying to shoot as little unused photons as possible.
Shadows
Set the light shadow property to raytraced and only 1 ray cast. This may be changed later after finding the proper radiosity attributes.
Width
Set the light width to 0. This will not speedup render time but it will greatly help find the optimal radiosity attributes. This may also be changed later.
Fall-Off
Set the light fall-off to the minimum distance that will give a proper lighting. In the example scene, here, the fall-off is set so it just touches the ring object. This will produce caustics intensity which are well balanced with the illumination of the scene. (See the description of the light fall-off)
Reflective Object Setup
Reflectivity
The only attribute that needs to be setup here is the reflectivity. A reflectivity of 100% would look unnatural. In the example, the reflectivity is set to 50%.
Choreography Setup
Rendering the scene would produce the basic scene similar to this one.
The caustics sharpness is dependent on the radiosity attributes set but also on the object size. Using the default radiosity attributes set on objects of different size will produce different quality of caustics. So you shall get similar results if you use the supplied scene but you may get different results with your own scene.
We shall add caustics by turning Radiosity ON and Caustics ON in the Choreography properties panel. As a first test, we may leave the default values for the other radiosity attributes as they are. |
The result should look similar to this render.
Not so bad. But it certainly could be improved with much sharper caustics edges. Too muddled caustics edges generally means that the sampling area is too large.
Applying the dichotomic search procedure, I will first try a sampling area 1/10th the current default of 100. |
Which will produce a render like this one.
Now the caustics edges are much sharper but the sparse photon area of the caustics is grainy which indicates that the sampling area is now too small.
For the next test, I will try a sampling area about midpoint between 100 and 10. I will test a sampling area of 50. |
Which renders like this.
The result is somewhat still grainy. I will have to increase the sampling area some more. However, I also notice that the caustics edges are muddy again and will certainly get muddier as I increase the sampling area. I can take care of the sharpness later but the grain is in direct relation to the sampling area. So I will now try a sampling area about midpoint between 100 and 50. I will try a value of 75. |
Which produces this render.
I got rid of the grain in the caustics but at the expense of muddled caustics edges. This reflective ring bounces photons not only inside the ring but also in front of the ring. As a consequence, about half the photons cast on the ring are used for the inside caustics. Also, the ring is a rather large object. So my next best bet is to increase the number of photons in the Scene. |
Trying with 100k photons and rendering will produce this.
Now this is caustics the way I like them. 100k photons might be a little expensive though so I could find a more optimal number of photons by using the dichotomic search procedure again on this particular attribute. But for the purpose of this demonstration, it is good enough and I will leave it like this.
|
Download the final project file by clicking here.
|