Reflected light in cycles

Here’s a simple scene (2.65) with a floor, a mirrored wall and two spot lights. The spot on the right (closer) is aimed straight down and we see the circle of light on the floor and reflected in the mirror.

The spot on the left is tilted to aim at the mirror. The beam should reflect off the mirror and also land on the floor but it doesn’t. I believe that effect is called “caustics”, but I haven’t found where to look for that setting.

Thanks for any clues.


what are the white shapes on the mirror ?

light from a spot on the floor do reflect in the mirror
but that’s it !

happy cycles

The spot light might not reflect off of glossy surfaces, but if you construct a spot from a mesh light (with an emmission material), then I just confirmed that it will work. The down side is that it will take a lot more samples to converge, but such is the nature of caustics in ray tracers.

making up a fake spot with let say a cone wtih an emission light!
not the best way to do it

yes emission plane are normally visible source of light
butnot the other typ of light sources!

now this is reflections
caustic has more to do with internal reflections coming out of and object!

so i doubt that you will see any caustic with only lamps and mirror !

but in normal blender you can have volumetric spot light


unfortunately cycles is far from a good tool for this job. Nor does it have a good way to fake caustics like biased renders (I hope they implement a way for us to do photon mapping and disable raytraced caustics).

If you are looking for unbiased caustics, you are better of with something more physically accurate. It will be much better and faster.

Attached I show the solution I know. you use mesh lights (I don’t think there is a way for spot lights or point lights to cast caustics) and you let them render for a looong time. This image has whooping 5000 samples and it is still ugly and noise.

It might be a good idea to disable sample as lamp, since all lighting will have to be done by brute force anyway. It might get more accurate.

Sad, but you will have a lot of trouble making caustics in cycles. You will have to use brute forced lighting (disabling sample as lamp) and that is much, much slower and noisier.

But I hope to find a better sollution. For instance, if you only want a wall mirror, you might have 2 scenes with 2 lights for each side. I guess it would still be much faster then brute force.


Now that I read more carefully I see you already solved it. Might be a good idea to mark it solved so that people know.

I suggest you try lux render or maxwell. Maybe even octane works with caustics.

for some special cautic you can also use the lightpath node
and use transmisson to boost the caustic effect with an emission source

happy cycles

guismo, you are exactly right. Yesterday I set up two scenes yesterday and let them run overnight. The first one is 120,000 samples with a glossy mirror in cycles (13 hours). The second uses the mirror modifier for all objects (10,000 samples), but the glossy shader on the mirror object was replaced with a transparent shader. You can see it will converge a lot more quickly, but it takes more memory.

Here was the render with the mirror modifier (1 hr 28 min):

Spot lamps do work with caustics now, for anyone interested. You just have to enable Multiple Importance Sampling in the lamp properties. In some preliminary tests built in lamps are as fast/faster than mesh lights now.

m9105826, thanks for your help. You write:

“You just have to enable Multiple Importance Sampling in the lamp properties.”

That sounds very promising, but I cannot find such a setting. I am looking in the properties panel, ‘Lamp’, but only see options for ‘size’ and ‘cast shadows’. I’m working in 2.65. Am I looking in the right place?

Here’s a screen shot showing my properties panel.


You really need some light tracing - like integrator for that, Cycles is path tracer and cannot clear noise fast in that scene. That is one of many reasons i playing with bidirectional integrator. At least such simple scenes can be already rendered, but in more complex cases my patch produce wrong result. Try Luxrender/Yafaray/Mitsuba/many other, to see how it is must be done.

@@m9105826 It is not thue, that recent MIS changes in trunk is just better handle point light with size >0, where you can make alternative sampling as with mesh light and use MIS to get better noise cleaning as combination.