Well, as you might have guessed, caustics converge very slowly in cycles- meaning, if you want them to look good, you will need many samples to get rid of fireflies. Clearly this is why the ‘no caustics’ button is available in the renderer- a must if you’re using cycles for animation.

But: shadows from e.g. a glass monkey look awfully dark without caustics. Witness here:

So what to do? An ‘obvious’ trick is to use the incredible ‘light path’ node in the material node editor. Mixing a transparent shader and a glass shader using the ‘Is Shadow Ray’ output means that only shadows will use the transparent shader, while the rest will use the glass shader. This allows us to dial in the opacity of the shadow by varying the darkness of the transparent shader. Cool!

But, in the back of our minds, we all really regret missing those caustics. Enter the trick discovered on BA for making lights: use the dot product of the incoming and normal rays (this is basically getting the angle between the normal and the light ray) to a ramp. The multiply node allows to increase or decrease the intensity. Voilla! totally unphysical, yet very acceptable caustic effects, without the fireflies.

pretty good looking. It’s not ever going to look exactly like the real thing (obviously) but it is usually enough. The node tree for the setup? A mere bagatelle:

  1. I love it when these tips come through right before a project that needs them. 🙂 Thanks for the heads up.

  2. Great 🙂 Nice coincidence, hope to see what you’re working on.

  3. Thanks alot!!

  4. Indeed this is a brilliant and surprising good hack! I’d like to add, that after testing I’ve found that you can also put a Normal Node to some of the vector inputs, just to be able to rotate the light with diffrent angles.

  5. thanks! Yeah, that’s a good idea.

  6. I think the Facing output of the layer weight node does exactly this

  7. Hmm, Couldn’t replicate with the layer weight node in a quick test (admittedly, didn’t try long). I’d love to see an example file if you can make it work.

  8. […] seen in swimming pools. In lesson 3 you will see a clever technique for faking caustics (credit to Bassam Kurdali) to achieve both faster render times and additional artistic control. The first half of the lesson […]

  9. Seb.R. :

    Hi, thx for the great Info..
    Can you explain the last part for 3D math novice like me..

    P.s. Saw the Lux render 1.5 a coustic render with Glass and it looks really nice …

  10. […] тени! Вы можете изменить цвет тени у объекта или создать фальшивую каустикудля быстрого рендеринга вашего […]

  11. […] drum roll… control what shadows look like! You can change the colour of an object’s shadow, or fake caustics by creating a fast-rendering fake shadow for your […]

  12. Unfortunately this doesn’t work with 2.78a.

  13. I’m surprised that it shouldn’t, afaik none of the relevant nodes have changed, what exactly happens?

  14. hi

    very interesting post. I have a couple of questions if you don’t mind.

    First, you connect only the “Is Shadow Ray” socket to the Mix Shader. In some other setups they also connect the “Is Reflection Ray” to the Mix Ray. Why don’t you do this ?

    Second, could you perhaps show/explain the settings of the Color Ramp ?


  15. Hmm, I’m not at home, but I’ll try to revisit this this week! poke me if I don’t 😉

©URCHIN 2015