Why is my mirror diffusing light?

Hi,

here is my very simple setup :

  • One “Sun”, pointing down, 0° angle
  • One plane (Mirror) oriented 45°, BSDF Glossy, 0 roughness
  • One plane (Screen) oriented 90°, default material

I should be seing a sharp white rectangle on the screen, but instead I get a diffused patch of light.
View from the left should show only black, but I see this :

What could make my mirror diffuse light instead of just reflecting light perfectly sharp ?

Note that :

  • When I hide the mirror, no light is visible on the screen
  • I used all the default Blender settings except :
    • I switched to cycles
    • I set the world background strength to 0
  • If I set Render → Light Path → Caustics → Filter Glossy to 0, I get no reflection at all.
  • When I replace the screen by an object, I can see its reflection in a perfectly sharp manner, and the mirror is behaving as expected :


(though I shouldn’t be seing any light coming from the bottom of the head, as the light comes from the top, the shin does not get any for example. When I set Filter glossy to 0, I get the right reflection with only the top of the head illuminated)

So why is cycles able to simulate perfectly sharp reflection of objects, but makes my mirror diffuse light coming from a Sun light source ?

I don’t think the blender will be physically fully implemented. I think it’s possible with a LuxCoreRender. :thinking:

I don’t know the answer to your question. :sweat_smile: :sweat_smile:

I can’t believe Blender isn’t able to simulate this.
Perfect reflection is the easiest thing in the world to simulate, this is not an advanced physical phenomenon, on the contrary.
Diffusion is something more, and I don’t understand why Cycles would make my Glossy BSDF with 0 roughness diffuse light.
It makes no sens for a ray tracing engine. I must be missing something trivial but again I am using default Blender settings.

Maybe the answer has something to do with the reason that Filter Glossy = 0 produces no reflection at all

Can you post a .blend file?

I’ve never seen the work of implementing mirror reflections before, because it’s more efficient to use tricks than to make actual reflections.

I see a similar question in the link below. I don’t know if it will help. :slightly_smiling_face:

The light itself is not a perfect point (actually, that would make little sense from physics point of view). You can edit the radius in preferences of the Light object.
EDIT: you’re right, cycles is not able to render the reflected square, no matter how I set the light radius.
EDIT2: the actual setting to make it correct is in Render preferences → Light paths → Caustics: Filter Glossy. But then, if you set this to zero, you get no reflection at all.


It kinda works if you set Filter Glossy to 0, but you have to crank up the samples REALLY high. :upside_down_face:

3 Likes

The screen has a diffuse material so the path tracing algorithm will do a bounce at a random angle.
With mirror roughness, sun angle and glossy filter all at zero the probability to hit the surface at exactly the angle that reflects upwards perfectly vertically to hit the sun is basically zero and the result will be only blackness.
In order to get a result, one or more of the three parameters should be a little more than zero.
Somehow this works not as expected with low glossy filter, but a small sun angle and/or a small mirror roughness will give a result.
Also path guiding (only CPU) will help to converge faster.

The diffuse patch of light in the opening post results from filter glossy = 1 at default.
It should get sharper when lowering the value but I get crazy results, don’t know what the algorithm is doing there.

2 Likes

Default material ? you mean diffuse ? You’d need a sharp glossy BSDF to get a projection from the mirror, diffuse is doing exactly what it’s supposed to here

1 Like