Caustics in cycles?

Hello everyone. I just have a simple question. Does cycles support caustics? And if it does, how realistic is it? Like, can I shine a lamp through a triangular prism and get a rainbow out of it?

AmedeoCompositions have a ‘appetizer’ tutorial which shows how to fake caustics using nodes and masks, (you can produce the same effect with a suitable image map). It’s not precise, but it certainly enhances the render.
Have attached images showing the difference it makes, without & with.

Article how to get caustic faster

And here is a faked caustic, looks quite good and its much faster (awesome specially if you need an animation :slight_smile: ).
https://dl.dropboxusercontent.com/u/55113627/>Blender/Caustic%20(Fake)/50%.mov

Blend File (its from january 2013 so many changes in cycles, maybe you will need to rebuild a node tree)
https://dl.dropboxusercontent.com/u/55113627/>Blender/Caustic%20(Fake)/test-Fake-Caustic.blend
Inside are two versions (two authors) of node group, that I found in that time:
https://dl.dropboxusercontent.com/u/55113627/%3EBlender/Caustic%20%28Fake%29/OFF%20Caustic-Fake%20%28m9105826%29%2B.png
https://dl.dropboxusercontent.com/u/55113627/%3EBlender/Caustic%20%28Fake%29/OFF%20Caustic-Fake%20%28Bassam%29%2B.png

Ok thanks guys. So cycles isn’t great on caustics. Nor does it support bidirectional pathtracing. Alrighty then. I might as well go learn Luxrender.

One more thing. Do the developers of cycles plan to improve the caustics? Because I would prefer to texture objects with cycles and get results similar to Luxrender.

The official word is that it’s not a high priority because caustics are so rarely worth the trouble in production use, especially in animation where Cycles is mainly targeted. Storm_st has been working on a patch for awhile that would improve it, but I don’t recall that status of it.

Oh okay. Interesting. Well, thank you for the information. I appreciate it.

Looks like i am only guy who play with that idea . The problem is i have no access to real reliable GPU hardware to tweak/optimise bidirectional patch (NVidia based too closed/proprietary, AMD/ATI just not work on valid OpenCL code, and improvements not fast as i want). So patch in “early developer only prototype” mode, not useful for anything.

I think that this caustic mode is not that needed, as current Cycles “Path Tracer” cover 99% of typical needs. Maybe replacing Sobol + Creanley-Patterson by Niederreiter-Xing + Owen scrambling will boost Cycles on complex indoor scenes a bit (I suspect it is main reason, despite usual optimisation, that ppl say that Arnold and Maxwell much faster even on CPU). I still have no real code to check it looking at pictures side by side, have trouble to understand that Owen trick, but all that papers with theory say on dimensions ~(4…32) it will be significant, up to order of magnitude improvement. There will be some overhead, but i doubt it big especially on multi bounces indoors.

For now better use Lux or Yafaray (or all that commercial Maxwell, Octane). Or get your hands dirty and optimize/rewrite from scratch my patch :).

1 Like