The way caustics are calculated is deeply connected to the global illumination (GI) in the scene. Unfortunately, there's no reliable way to separate out weaker caustics from the overall lighting.
There are some ways to try to identify caustics on their own, but these methods didn’t work well in our tests, so we decided not to use them.
The only way to stop caustics from a specific light source is to turn off the caustics solver for that light. However, even when this is done, path tracing still picks up certain types of caustics, so fully disabling all caustics isn’t possible unless we also turn off global illumination for the entire render.
Examples
1. Caustics solver enabled in the Performance tab. "Generates caustics" enabled in the light object.
Both reflective and refractive caustics are generated as expected:
Nonphysical properties rollout of the Corona Light:
2. Caustics solver enabled in the Performance tab. "Generates caustics" disabled in the light object.
Note that even though the caustics solver is disabled in render settings, both reflective and refractive caustics are still visible. This is because they are a part of the GI solution, and in this case are calculated using the standard path tracing solver (which makes them noisier and slower to render).
Nonphysical properties rollout of the Corona Light:
3. Caustics solver enabled in the Performance tab. "Visible in reflections" disabled in the light object.
The caustics solver is enable in render settings in this example, however only refractive caustics are visible, because the light is ignored in reflections. Note that in this case the light is not visible in reflections on the metallic cube object.
Nonphysical properties rollout of the Corona Light:
4. Caustics solver enabled in the Performance tab. "Visible in refractions" disabled in the light object.
The caustics solver is enabled in render settings in this example, however only reflective caustics are visible, because the light is ignored in refractions. Note that in this case the light is not visible in the refractions of the glass object.
Nonphysical properties rollout of the Corona Light:
5. Caustics solver enabled in the Performance tab. Both "Visible in reflections" and "Visible in refractions" disabled in the light object.
In this case, no caustics are visible at all, and the light is also invisible in reflections and refractions.
Nonphysical properties rollout of the Corona Light:
6. Caustics solver disabled in the Performance tab. All checkboxes in the light object enabled.
In this case we are using the standard path tracing solver to calculate any caustics. Note that the result is identical to the example 2 where the caustics solver is enabled in the Performance tab, but is not actually used in the rendering.
Render Setup > Performance tab:
Nonphysical properties rollout of the Corona Light:
7. Caustics solver disabled in the Performance tab. Both "Visible in reflections" and "Visible in refractions" disabled in the light object.
Similar to example 5, no caustics are visible at all, and the light is also invisible in reflections and refractions.
Render Setup > Performance tab:
Nonphysical properties rollout of the Corona Light:
8. Using the RaySwitch map (or material)
To disable reflective or refractive caustics for any material, you can use the RaySwitch map or material with a black color/material set in its GI slot. This way, no light will be ever reflected or refracted by this material, regardless of using the caustics solver or pure path tracing and regardless of the Corona Light's settings.
In this case, a RaySwitch map was used to disable reflective caustics for the metallic cube object (plugged into its reflection color slot), and the same RaySwitch map was used to disable both reflective and refractive caustics for the glass object (plugged into its reflection color and refraction color slots).
Material setup: