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 馃槈

  16. Spoiler alert: Doesn’t work with planes.

漏URCHIN 2015