@dj_buckley - back to the original issue.
I did an investigation, but unfortunately I do not have a satisfying solution. Only some possible workarounds:
1) The most important question - do you really need those reflective caustics from the water in the shaded areas?
If you do not need to keep the reflective caustics in the shaded areas: you can plug a rayswitch map like in the attached image into the water material's reflection color slot. This will keep the reflections visible in other reflections (e.g. when the water is reflected in glass), in refractions, and when they are seen directly, but will tell Corona "this material is non-reflective for GI rays" which basically means removing reflective caustics.
Reflective caustics generated by other materials will be still visible, which leads us to another thing: most of the materials in your scene have reflections enabled, including walls, floors, etc. This is not a mistake, and I can understand that for example the Corona Material Library features materials like this, but this will definitely slow down caustics, since they will be calculated for everything, rather than just for the water material (or other reflective/refractive materials where you need them). The solution here would be to either remove the reflectivity in the materials where it is not absolutely required, or to use the rayswitch map again to make the reflections appear visible directly but invisible to the caustics solver.
If you do need to keep the reflective caustics visible in the shaded areas:
2) The only thing I can recommend is radically changing the render settings to get faster caustics rendering at the cost of everything else. Here is a list of what I was able to come up with:
Scene:
- Enable denoising
Performance:
- Use Path Tracing + UHD Cache (originally your scene was using the 4K Cache - this is fine, but the UHD Cache is the more "secure" solution)
- Set GI vs AA balance to 4 (this will render each pass very quickly, with a lot of noise, but since caustics are calculated between each pass, this will dramatically improve caustics quality)
- Set light samples multiplier to 1
- Set Max Sample Intensity to 10 (you can try setting it even lower, but at some point it will basically kill any light bounces)
- Set Max Ray Depth to 8 (this may be considered blasphemy by some, but it should result in faster rendering at some cost of the lighting quality)
In the caustics solver settings (you need to have the Development/experimental rollout enabled):
- Set initial lookup radius to 1.5 px (you can try with a higher value, but 2 seemed too high for me - the caustics will become softer, more blurry, but will render faster)
- Max photons/iteration - the default value is 5000 and you can set it to as high value as possible. I tried with 15000 (3x the default) and it was fine. You can even try with values as high as 50000 (10x the default) but most likely you will run out of RAM and Max can easily crash.
System:
- Make sure that you are using the High quality image filter (it simply gives the best rendering quality)
- You can try enabling highlight clamping (set it to a value other than 0) but remember that this will clamp all the brightest areas in your image so you will not be able to take advantage of high-bit depth (this is important if you are planning to adjust your image in post). It should make the rendering a bit faster.
I will share some before/after images with you via PM.
I will also log this as a report for our devs, since it's yet another case where the caustics solver could be definitely improved.
(Internal ID=589850917)