In Unreal Engine 5.4.4, shadows that are not visible in the scene appear in the mirror reflection. A Rect Light coming from the window casts the chandelier’s shadow in the reflection, but it is not visible in the actual scene. At the same time, I can’t hide the Rect Light from reflections. When I lower its specular value, the objects it illuminates appear completely black in the reflection. I’ve tried many things, but I have no idea what the issue could be anymore.
I think the issue is that the reflection is casting hard shadows, while the actual scene has soft shadows. In the real scene, the chandelier is presumably also casting a shadow - it is just so soft due to the large area of the light and it’s own thinness it is barely visible.
In the reflection, the area light is acting more like a spot light which results in the sharp shadows seen.
I’m not in a spot to check, but there may be a setting or cvar to enable soft shadows in reflections.
Hey, thanks for the answer, but I couldn’t find anything like that. Besides, everyone shows how to create a mirror on the internet, but not how to do it with lights. I don’t want to see that rect light either. What am I supposed to do?
the cvar is “r.Lumen.HardwareRayTracing.HitLighting.ShadowMode 2” for soft shadows. be warned. they will be noisy cause they are temporal. and… you should use tsr. taa doesn’t handle the noise (yet or ever?), really. tsr has issues too, tho.
set “specular scale” to 0.0 to hide the source of the light in the reflection. be aware it will hide it in every reflection. seems fine for your scene tho.
note: this is 5.5.3. may not work in 5.4.4. but… i can check, ig. compiles 8k shaders the shadow mode does not exist in 5.4.4 yet. i guess i tested this when it was wip in the main branch.
Nothing changed. Setting specular to 0 makes metallic surfaces appear black, and adjusting TSR settings didn’t have any effect.
yep. i just edited that there. no shadow mode in 5.4.4 yet. you’d have to upgrade to 5.5 for that.
also… you should maybe change the color of the metal to a lil more gray. would make logical sense. diffuse color is a product of roughness. and since you have obvious roughness on those metals. you’d have a lil bit of diffuse shade. that would light it up. in the real scene and the reflection. it’s physically correct and works visually.
the other thing you need is reflection bounces. should be able to set via ppv (doesn’t work for me) or via cvar
“r.Lumen.Reflections.MaxBounces 2”
and you need atleast 2 bounces. one for the mirror and one for the metal piece in the mirror. all raytraced. it’s a hacksh!t cause the light doesn’t reflect at all anywhere raytraced, but works to some degree.
5.4.4 screenshot there…
or… just cause i’m never done finding things… you could use a full opaque translucent mirror with Surface TranslucencyVolume (cheaper then Surface ForwardShading) and keep your specular scale up. it’s more expensive than the opaque material tho. still no soft shadows, but the light in the mirror is gone, for some reason.
Hey, thanks for the info and demonstration. I tried it as you did and got this result. Is it worth upgrading to 5.5? I’m not planning to use a clean mirror like the one in the example. Instead, I’m going for a broken, dirty mirror. What would be the best approach in this situation? (I’m creating this for the purposes of making it a game-ready environment art project )
sorry for the other edit.
and right there the roughness of your mirror material seems wrong.
your choice if you wanna upgrade. i don’t make that for you. if you really need this soft shadow reflection look you probably could upgrade, to get it working.
and well… for a broken mirror you would model the shards and apply the mirror material with some dirtness.
you could do it with a normal map and opacity too, but it’s gonna look bad (outdated). hmm…
Thanks for the help I assume there is no way to fix everything I guess. It really bothers me that I haven’t been able to solve something that sounds so simple for days. I will update to 5.5 and try it there too, but I hope it will be as I want.