Hi, I am working on a map that has some houses on it and in the houses I have noticed that all of my inhouse and also street lights have their specular visible through walls. Now I have seen and read the topic posted in 2016 Specular reflections visible through walls but my issue is a bit different as I don’t have any baked information and all of my lights are movable. So no reflection captures at all on the scene.
The walls that I am using have enough thickness so thin walls are not the issue here.
I have noticed that turning on/off shadow casting on the lights has no effect on this issue
The workaround I’m thinking about would be to use different light channels for different rooms but that can’t be used in a situation where you have a light let’s say in a bedroom that has to light up the hallway floor and walls you are standing in when you open that bedroom door (image 2)
As you mentioned, turning off shadow casting won’t affect this, it only turns off the shadows not the light (or specular reflection).
However, you can still build Reflections captures even if you don’t have baked light. You can have multiple reflection captures in the level so the reflection is different from when you are outside vs inside.
Are your walls “two-sided”? There should be a checkbox for that somewhere. Also, I know you say your walls are thick but what happens if you try to build even thicker light blockers (using simple shapes) around the walls AND floor? Also check your indirect lighting intensity settings. Good luck!
If you are using Lumen then some of that geometry might be taking information from probes outside of your room. If thats the case you can try and increase the density of your probes. Or you can try and seal off the holes with blocker geometry.
If that is a proper light causing the spec hits make sure that light is casting shadows.
Thank you @XxpiingyxX , @EnterstellarAJ and @comlys for the responses. My whole scene is movable with all movable lights inside houses as every house can be destroyed. So no baking and no reflection captures, my walls are thick and I have tried two-sided option. I am not using Lumen, this is None or SSGI scene but the issue is persistent even with Lumen.
The thing is, as my research showed, that UE doesn’t occlude specular values with geometry. Specular values are rendered per pixel so if the light is on screen (even behind the wall), the specular WILL be visible. Using reflection captures could solve this as it gives exact reflection information to the engine, but in movable/non-baked cases it will just be there.
The expensive way to fix this is to use hardware raytracing and turn on the raytraced shadows for the light. That is the most expensive solution. The other cheaper solution was actually using light channels where possible and inside of the houses I have figured out that those specular reflections were made from fill lights so I just turned off specular for those and the problem was solved.
Cast shadows will occlude specular specular highlights normally, why that is not happening in your case I do not know, but this is not normal for Unreal and I’m unable to reproduce this.
This is with regular shadowmaps, lumen disabled, static lighting disabled, fully dynamic geometry, and no hardware raytracing:
It might be a limitation of the shading model or shadow method you’re using, SLW for example can only occlude specular highlights from directional lights, and translucency cannot occlude specular highlights in reflections.
Hardware raytracing is not required, because specular highlights are not solved by tracing rays into the scene, it is computed directly by knowing the surface normal, light position, view vector, and surface properties, and because they are by nature directly visible to the light, any cast shadow method should occlude them whether they’re hw raytraced or not (except in the case of translucency)