5
$\begingroup$

Lamps show up in reflections regardless of what object they are contained in. This is 100% inaccurate. To demonstrate this more clearly, I gave the triptych wall painting a mirror surface. You can see balls of light from the 3" point lamps inside the lamp shades, and a huge white plane that fills the window from an area lamp, which shows right through the curtain without any occlusion.

Ironically, switching on "Show Preview Plane" in the Reflection Plane removes the reflection of the lamps -- which should be the default behavior! Unfortunately, "Show Preview Plane" cannot be used for rendering, only for viewport debugging. But we desperately need that ability during rendering.

Does anyone know of a workaround for this, besides turning off specularity? Setting radius to 0, reduces the offending reflections to small specks, but as the images below show, it does not remove them. Any advice would be greatly appreciated!

IMAGE 1: incorrect lamp reflections EEVEE

incorrect lamp reflections in EEVEE

IMAGE 2: Point lamp radius set to 0, reflection still incorrect

lamp size 0

IMAGE 3: Angle 2, showing area lamp reflection through curtain without occlusion

lamp reflection without occlusion

IMAGE 4: "Show Preview Plane" enabled on Reflection Plane. This is a screenshot, not a render, since this feature is not available during render. This is the look I need to achieve.

how to hide lamp reflection in eevee reflection plane show preview plane

$\endgroup$
7
  • 1
    $\begingroup$ related blender.stackexchange.com/questions/146525/… and developer.blender.org/T67788 $\endgroup$
    – lemon
    Commented Aug 14, 2019 at 17:45
  • 1
    $\begingroup$ Thank you, Lemon. Unfortunately, the report was closed as invalid-- a limitation. I do not believe this should be the case since "show preview plane" essentially solves the issue. I'm going to encourage the devs to reconsider this. $\endgroup$ Commented Aug 14, 2019 at 17:50
  • 1
    $\begingroup$ I agree... and my opinion is mirroring something that is not visible as an object outside the mirror is not consistent. $\endgroup$
    – lemon
    Commented Aug 14, 2019 at 17:54
  • 1
    $\begingroup$ Reading your question again, I think you should indicate 'show preview plane' if posting to the devs. $\endgroup$
    – lemon
    Commented Aug 14, 2019 at 18:00
  • 1
    $\begingroup$ @Copperplate thanks for your solution. I think that the issue is valid and the blender developers MUST find a solution within the renderer. I reopened the task and raised the level to high ;) $\endgroup$
    – Fabio
    Commented Aug 14, 2019 at 18:25

2 Answers 2

3
$\begingroup$

Just in case anyone finds this later, there's now a "Specular" slider in the lamp settings that solves this.

Set lamp specular slider to 0

$\endgroup$
1
  • $\begingroup$ Thanks Andrew! This is definitely the simplest (and preferred) method, but it does mean you will lose all specular highlights from that light (so if needed, one can add specular highlights back in from either another light source or from an HDRI image). Hopefully one day in EEVEE, lights will no longer incorrectly render in FRONT of their occluder in reflections, so then we won't have to use the "shadow-eraser" hack or turn off Specular altogether! :-) $\endgroup$ Commented Sep 26, 2022 at 15:41
3
$\begingroup$

EDIT (09-26-2022): The "Bleed Bias" setting described below was removed in Blender versions after 2.8. However, the process of using the shadow of the light's occluder to erase the light's reflection still works, and is still the only way I know of to preserve a light's "specular" highlights while erasing its own reflection.

HOWEVER, as Andrew Price pointed out in his answer, setting the light's "Specular" slider to zero is the simplest method, but it means you will lose specular highlights from that light. So if needed, you can add specular highlights from either another light or from an HDRI image).


I thank God for one interesting and unexpected hack He showed me. This might help someone if your scene falls within the following criteria:

If you have a lamp inside some occluding geometry, AND the shadow of the occluder happens to fall across a mirror surface with a reflection plane applied, THEN you can increase the lamp's "Bleed Bias" (I used 0.05) and the SHADOW will actually erase the lamp from the mirror's reflection. Note this only works if the shadow falls across the mirror surface. Proof below:

With bleed bias at 0: eevee-light-reflection-problem-bleed-bias-0

With bleed bias at 0.05: eevee-light-reflection-problem-fixed-bleed-bias-0.05

With bleed bias at 0.05 and reflection plane on floor. Note how the reflection of the lamp shade improved, but now you lose the ability to see the mirror's reflections in the floor's reflection (no reflection of reflection). EDIT: Technically, from this angle, the floor would not reflect the mirror's reflection but rather the ceiling. Cycles confirms this. However, Eevee is still incorrect since the floor's reflection plane cannot reflect ANYTHING in the mirror's reflection planes. eevee-light-reflection-problem-fixed-bleed-bias-0.05-floor-reflection-plane

EDIT: Here is the Blend file including one occluded light (inside the lampshade) and one non-occluded light floating in space. You can see that the shadow of the occluded light only erases itself, NOT the other light floating in space. Each light would need its own occluder.

$\endgroup$
5
  • 1
    $\begingroup$ Man, please, could you add a blend file with a simple setting of this? Thanks $\endgroup$
    – lemon
    Commented Aug 15, 2019 at 17:48
  • 1
    $\begingroup$ Hi, I just added the .blend with description (after the last image). $\endgroup$ Commented Aug 15, 2019 at 18:04
  • 1
    $\begingroup$ Pretty cool, thanks a lot. $\endgroup$
    – lemon
    Commented Aug 15, 2019 at 18:08
  • 1
    $\begingroup$ Very CPU consuming indeed. But works. Maybe that's why Clément is tedious about that. $\endgroup$
    – lemon
    Commented Aug 15, 2019 at 18:17
  • 1
    $\begingroup$ Soft shadows are the killer in this scene. If you turn them off, you will get much faster previews. :-) $\endgroup$ Commented Aug 15, 2019 at 18:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .