Table of Contents

This page provides information on the Caustics rollout.

Overview


V-Ray supports the rendering of caustics effects by using one of the following techniques: photon mapping or progressive.

The new Progressive caustics solver uses advanced sampling techniques, and is able to trace as many photons as required without suffering the memory constraints of traditional Photon Mapping techniques.

It is loosely based on two papers: one on Progressive Photon Mapping from Knaus and Zwicker, and another on Metropolis-guided caustics tracing from Šik and Krivánek.

The other method, New Map (Photon Mapping), is a two-pass technique.
The first pass consists of shooting light particles (photons) from the light sources in the scene, tracing them as they bounce around the scene, and recording the places where the photons hit the object surfaces.
The second pass is the final rendering, which is when the caustics are calculated by using density estimation techniques on the photon hits stored during the first pass.




Parameters


Caustics – Turns rendering of caustics on and off.

Mode – Specifies whether caustics should be calculated using a traditional New map or the new Progressive1 algorithm. Alternatively, you can use a pre-calculated map From File

Progressive

The Progressive method doesn't need most of the controls used for traditional Photon Mapping (New Map), so the controls are grayed out. Only the Search Dist control in the render settings and the Caustics Multiplier in V-Ray lights, have an effect on the result.

Search Distance Units – Determines whether the Search Distance is calculated in pixels, or in world units.

Search Distance – Specifies the initial photon lookup radius.


Tips when working with progressive caustics:

Required:

  • Affect Shadows should be off in refractive materials if they are to generate caustics.

  • The Affect Channels option should be set to Affect all Channels in refractive materials to ensure the Caustics render element contains also the ones fallen behind refraction.
    Not doing so leaves photons fallen behind refractive surfaces inside the Refraction RE, but not inside the Caustics one.

  • If present, the VRaySun's photon emit radius should be set to a value large enough to encompass the relevant parts in the scene.

Optional:

  • It is strongly recommended to set time limit when rendering with Progressive Caustics, rather than relying on Noise Limit value only.

  • Lower the Min. Shading Rate.
    Photons are cast for each camera ray, not for the secondary ones. The more camera rays are cast, the more photon passes are achieved.
    A value of 3 is fine if rendering with the rest of the scene, but a value of 1 could be used if rendering specific caustic passes (for example, a caustics pass scene prepared with the purpose of maximizing caustics' calculation speeds).

  • Set a higher min AA subdivs value.
    A higher min AA subdivs value (16, 24, even higher.) means there will be a longer phase of fixed sampling with no adaptation to the photon casting, so the screen coverage of samples will remain more consistent, allowing for quicker filling of, for example, big flat areas or long thin lines.
    The later phase of rendering, with adaptation, will then just bring noise down to ensure Noise Threshold is respected.

Managing Expectations:

  • The progressive caustic solver is fire and forget.
    This means that it can be turned on in any scene, and expected to trace photons on any specular or refractive surface.
    It doesn't, however, mean that doing so will result in an image converged to perfection within a short time.
    The approach, novel as it is, is still photon-map based, and judgement should be used to ensure quick, noise and frustration-free results.

  • It renders with the beauty.
    The solver does indeed render happily alongside a beauty pass, storing caustics in the appropriate Render Element (see requirements tips above!), but that may not be the best solution as far as performance is concerned.
    It's suggested to consider preparing a dedicated caustic rendering pass if the photon tracing is particularly extensive, and/or if sequences are to be rendered.
    That way, it will be possible to optimize the caustics calculation separately from the requirements of the beauty pass.





Example: The Search Distance Parameter


For this example, the Light Caustics Multiplier is 80 and the rest of the parameters are at their default values. The light used in the scene is VRaySun. The Caustics method is set to Progressive



Search Distance is 1

Search Distance is 10

Search Distance is 20

1
20





Search distance units – Specifies the caustics photon lookup radius units. You can choose between World or Pixels. When V-Ray needs to render the caustics effect at a given surface point, it searches for a number photons on that surface in the area surrounding the shaded point (search area). The search area in fact is a circle with center the original photon and its radius is equal to the Search distance value. Smaller values produce sharper, but perhaps more noisy caustics; larger values produce smoother, but blurrier caustics. For more information, see The Search Distance Parameter example in the expandable field below.

Search dist – Specifies the photon lookup radius in pixels.

Max photons – Specifies the maximum number of photons that is considered when rendering the caustics effect on a surface. Smaller values cause fewer photons to be used and the caustics are sharper, but noisier. Larger values produce smoother, but blurrier caustics. The special value of 0 means that V-Ray uses all the photons that it can find inside the search area. For more information, see The Max Photons example in the expandable field below.

Max density – Limits the resolution (and thus the memory) of the caustics photon map. Whenever V-Ray needs to store a new photon in the caustics photon map, it first checks if there are any other photons within a distance specified by Max density. If there is already a suitable photon in the map, V-Ray just adds the energy of the new photon to the one in the map. Otherwise, V-Ray stores the new photon in the photon map. Using this options allows you to shoot many photons (and thus get smoother results) while keeping the size of the caustics photon map manageable.

Mode – Controls the mode of the irradiance map.

New map – When this option is selected, a new photon map is generated. It overwrites any previous photon maps left over from previous rendering.
From file – When you enable this option, V-Ray does not compute the photon map but loads it from a file. Hit the Browse button on the right to specify the file name.

Save to file – Press this button if you want to save an already generated photon map in a file.

File – The file name with the caustics photon map to be loaded when the Mode is set to From file.

  • To write and load *.vrpmap files per frame, use %04d frame formatting token.

  • Caustics also depend on the individual light and geometry properties (see the Object/Light settings). 


Here, the Caustics method is set to Photon map, and the Light Caustics Multiplier is again set to 80. As can be seen, the larger search distance produces blurrier caustics.


Search Distance is 1.5
Search Distance is 2.5
Search Distance is 5
1.5
5

Example: VRaySun Photon Emit Radius


This example shows how a light's photon emit radius affects the caustics effect. Here we use a VRaySun to light the scene. For this example, the Light Caustics Multiplier is 80 and the rest of the parameters are at their default values.



Photon Emit Radius is 5
Photon Emit Radius is 10
Photon Emit Radius is 20
Photon Emit Radius is 40
Photon Emit Radius is 50
5
50

 

Example: The Max Photons Parameter


For this example, the Light Caustics Multiplier is 80 and the rest of the parameters are at their default values. VRaySun is used in this scene. As can be seen, the larger value of the Max photons parameter causes the caustics to appear much smoother.


Max Photons is 10

Max Photons is 60

Max Photons is 100

Max Photons is 200

Max Photons is 300

10
300



From File Parameters


Caustics Photon Map FileFile name with the caustics photon map to be loaded when Mode is set to From file. Click the Browse button to the right to specify the file name.

Auto-Save – Saves to file the photon map which is currently in memory. Note that the Don't delete option in the On render end group must be enabled in order to save the photon map in memory. Otherwise, V-Ray will automatically delete the photon map at the end of the rendering process. 

Auto-Save File – Specifies where the file is written.



Progressive Caustics Advantages



  • they require nearly no setup;

  • each cast photon is more useful than those in traditional Photon Mapping (New Map);

  • the number of photons castable is only limited by time, not memory;

  • they can resolve tiny caustic details, compared to the scene size;

  • they can resolve caustic details also when a camera is very zoomed in on them;

  • statistics about the photon tracing can be found in the VFB stats panel;


Progressive Caustics Limitations


  • they require the progressive image sampler;

  • the image sampler often requires Min. subdivs values much higher than 1;

  • it's non-deterministic, meaning that there could be somewhat unpredictable render times, and also tiny differences in the visual results when rendering the same frame twice;

  • currently doesn't work with distributed rendering;

  • currently not supported by the GPU engine;

  • Depending on the scene, the performance might not scale linearly with the number of threads/cores, resulting in inefficient CPU utilization.

Was this helpful?