Fake Caustic Material in Cycles

Hey everyone, I thought I’d share some progress I’ve made on a fake caustic material for Cycles that works especially well for animations. It’s fast to set up and has a high degree of control to it.

That’s a link to the material setup and explanation of parameters. Hope it’s helpful to someone!



I can’t believe no one’s replied to this. Great job! It definitely looks worthwhile for animation.

For the watery surface example in the vid, if you applied a Solidify Modifier to thicken it just a bit, would your basic caustics shader setup work for that?

The watery surface example is actually a solid mesh. I regret not showing it better in the video, but it’s actually a displaced cube that happens to be slightly larger than the Cornell box so that it appears as a displaced plane. As I said in the video, I have had a bit of success playing with the X vector curve when using just a displaced plane, but it requires some more testing and I didn’t want to put my name on it until I was sure. I’ll play with it some more tomorrow and see what I can come up with. Might take a stab at reflective caustics as well while I’m at it, but I don’t want to make any promises there :wink:

Anyway, I’m glad you enjoyed the video. I was starting to worry that no one was interested!

I was starting to worry that no one was interested!

Bah, it’s the blender forums - you know how it is. People seem to be comment shy for some reason. :slight_smile:

Excellent! I’ll be trying this one out for sure as well as looking forward to this thread growing around the evolution of this shader.
Thank you for your hard work.

Great approach, thank you.

I also like Bassam’s method, you might want to have a look, reacts to light position even (not size, though).

Interesting, I hadn’t seen that method. It will lend itself to some interesting tests. A combination of the two might be more powerful.

I am liking Bassam’s method a lot. It allows for even more control than my own, and I found that by giving a greater-than-1 value on the color ramp I’m able to get some very convincing effects. I need to do some more tests. I’m going to try to expand upon it to allow for reflective caustics as well. Wish me luck!

Cool, and good luck :slight_smile:

Great you like it, m9105826. I’m also experiementing a bit with both your’s and Bassam’s method, it’s great fun!

Thanks for another method. The more tricks up our sleeves the better. A note to people using the method Bassam posted: it worked great in builds up until close to the ‘release ahoy’ for 2.65, but gave render artefacts soon after.

Haven’t checked the most recent builds so it might work again as expected. Was a project at the studio so can’t check it now.

Very helpful. Thanks!

The only artifacts I’m getting are if I have a map plugged into the “Displacement” socket on the shader output. Using normal maps in the individual shaders works just fine.

Amazing! Thanks.

that’s a good material setup! Thanks for sharing!

Hi, I’ve make an improvement of your methode.
I’ve separate the normal and take only Z axis less than a value, It give the size of the caustic.
I’ve made a group too, so it’s easiere to set up.
The blend http://www.pasteall.org/blend/18421
Say me if it’s ok for you.

Hi all.

I have tested @@m9105826 method and bassam method. In my tests the first is less noisy and a bit faster. I discover the “Vector Curves” node for materials. Why is it not in the “Add” menu? Are there more hidden nodes?

It was added in revision 52886 so look what revision is your blender.
If it is above this put Cycles Renderer and add a material using nodes to some cube. Go to the node editor and Shift + A / Vector /Vector Curves. If you don’t see this go to File / Load Factory Settings and try to add the node again, if now yes, then you have a “corrupted” user settings and will need to save again your user settings.

Gracias @Bao2, but it doesn’t work. I did all you suggest, and I have reinstalled it. But that node only appears with Add->Search . Probably one bug for Blender 2.65a Windows 32 bits build.