Download

Why are shadows in unreal engine so dark?

I’m trying to get some light shadows in my scene but I can’t seem to make my shadows lighter without making them oversaturated. Increasing the skylight intensity makes everything look too bright.

3Yy7uOm.jpg

Is there any way to decrease the opacity of my shadows or somehow make them lighter?

The Witness does a very nice job at balancing the shadows and the sunlight. Is something like this possible in unreal engine?

With dynamic lighting you don’t really have dynamic G.I so you have to rely on balancing the skylight and the rest of your lights to make them appear less dark. If you use static lighting you should be able to get nice soft shadows very easily.

A bit more skylight intensity and a bit less sun intensity. Another thing to play with is tone mapping post processing.

Have you any other source of indirect light than Skylight? Witness use custom light baker so it’s get nice soft and clean GI. In physical based rendering shadows are just absence of light. There is no opacity control because it would make shadows totally unphysical. You could try to tune Skylight bit more carefully. Calculating static lightmaps with 100 bounces will help too. Exposure and tonemapping settings might help as well. Heck you could even bump up the indirectional light intensity. There is ton of options.
Edit: You could try ambient cubemap too.

Thanks for the replies.

I’ve tried this but it produces the exact same result just baked. Any specific way to approach this method?

I’ve played with the skylight and sunlight intensity for ages, I can’t get the shadows to be lighter without making everything else too bright. I also tried tweaking everything in post processing, but I don’t see a tonemapper in the list. Do you mean color grading?

No, i’m only using a skylight. I’ve tried using a second directional light at a 90 degree angle which makes the shadows look lighter but adds a noticeable highlight to every object with an angle in the shadows. I find it strange that Unity 5 has a slider for shadow strength, even though they have physically based materials. I’ve tried tuning the skylight but like I told BoredEngineer, I can’t make the shadows lighter without making everything else too bright. Increasing indirect light intensity doesn’t help much, it just makes the GI more noticeable.

Can you post some numbers. What is your directional light intensity? How about skylight? Have you read this? https://www.unrealengine.com/blog/updated-lighting-in-templates

Problem with shadow strength is that then you get highlights also in your shadows which are super odd looking and in physical base shading they can be arbitaly brights.

Is that first screenshot taken after the auto-exposure has adapted, or did you turn AE off?

Here are the settings for my directional light:

0dbccc44c62684234c566cb5a23305a4627c27a9.png

And skylight:

4a243cd466.png

It’s after it has adapted. I’ve played with the AE settings a lot but this is the best i could do.

6a1da38edc669bce2c503037086830ef3c396146.jpeg

It does look like you have some problems with reflections. Only those smoother surfaces seems to be too dark.

I think you just have too much metal-specular type of material. Your surfaces are loosing most of the diffuse light because of it and shadows start to shine from too much skylight reflection.

If you really wanna see what it would look like if shadows would have opacity level you can hack it. Add identical directional light without shadow casting properties and set intensity until you get the shadow strength you want.

There’s no way to avoid this. Removing the specularity from my floors makes the level too dull.

You’re right, it makes the shadows lighter but also adds highlights to everything in the shadow

622f8f484189789672c15497c8d562b359b17046.jpeg

I don’t know why unreal engine doesn’t have an opacity slider for the shadows, it would make things much easier.

I don’t know what Unity’s magical slider does. There is no such slider in UE4 because it goes against the main idea of PBR - Physically-Based Rendering, where the shade of your objects in or out of shadows is based on the interaction of surfaces with the light. If you ever did photography that knowledge is super useful here. There are couple of articles you might want to read to better understand what is going on:

http://blog.selfshadow.com/publications/s2015-shading-course/

One thing you seam be missing is auto-exposure or tone mapping https://docs.unrealengine.com/latest/INT/Engine/Rendering/PostProcessEffects/AutomaticExposure/index.html
it goes hand in hand with PBR especially in bright exterior scenes.

Change Skylight from static to stationary

This is what the magical slider does:

Shadow strength 1:
25a340c04c73e995a95a898f8e6fb132f02f52ec.jpeg
Shadow strength 0.9
214af29869.jpg
f7b73e92806c9252188be8571b6ed62cd65807b7.png

I know what PBR is and I know how it works but not everyone wants to create an ultra realistic game. Adjusting the shadow strength should be an option even if that means it goes against the idea of PBR. If it’s not possible with physically based rendering then I didn’t know.

I’ve tried playing with auto exposure but it makes everything look oversaturated, but I might be able to tweak it in combination with the skylight and directional light if there’s no other solution. And by tone mapping do you mean color grading? Because I don’t see it in the post processing list.

It’s already stationary

Yeah and they still call screen space blurred shadows as soft-shadows…

All options are right there - balance of ambient and direct light + exposure control/eye adaptation/tone-mapping (they are all similar concepts) as post-process. If you materials have to high values of metallic or low roughness, they will look dark - they are suppose to.

You might have a problem with gamma settings of the monitor too, your first screenshot look relatively fine on my screen, at least I wouldn’t call it dark.

Perhaps other people have ideas…

Have you tried tweaking the “Global Illumination”->“Indirect Lighting Intensity” value in your unbound global post-process volume?
(edit: nm - I see you mentioned you tried everything in post-process…)

What solved it for me was in World Settings->Environment Color, changing that to white and making intensity 2.0.

vote for indirect lighting intensity also.

lol I laughed out loud when I read Opacity Slider for shadows. Its not quite so straight forward in Unreal, but it is influenced by settings that make sense if you understand the tools you’re working with.

If its static/stationary lighting, you can use white environment color in Lightmass settings and do an Environment Intensity of like 5-10 to get pretty decent ambient light emitted from the sky around your scene, which for outdoor environments works really well for lightening shadows. Of course they will still get really dark in nooks and crannies, because its not a single slider that just makes them all 1 tone, it instead is projecting light from the sky from all directions and that tends to lighten the shadows. If not that a skylight also helps, and works well for dynamic lighting situations. Im sure theres other solutions as well that Im not aware of.