So I’m new to unreal 4, but I know my way around a light map. For some reason all of my shadows are baking out at a much lower resolution than I would expect.
Realistically for this small room a 512 should work, but even a 2048 is extremely blurry.
Engine scalability: textures and shadows are set to epic.
Build setting: lighting is set to production.
I believe I found a solution for you. If you are baking your lights there are certain properties you can adjust in order to sharpen your shadows. Baking shadows, even if set to higher settings, can result in softer edges. This is generally what you would expect from standard settings without tweaking things like resolution. However, the other is the type of shadows that you are casting with baked lighting. By default you use cascade shadow maps whenever you bake your lighting. These settings can be found at the bottom of the details panel when you select your light. Reducing the distance the shadow is being cast can greatly increase accuracy. Again, this will result in softer edges.
Baked lighting will always result in a mostly accurate calculation of your shadows because it is just that, a calculation. The engine estimates where it thinks things should be based off of vertex shading. Around the outer edges there will be some falloff. Switching your directional light to movable enables the engine to calculate your shadows at real time. The samples taken are much more accurate because the engine is constantly looking for where that shadow is being cast.
You can look into adjusting your Shadow Filter Sharpen property which is found within the Light Section in the details panel of your light. This is generally for fine tuning and finding middle ground for how sharp you would like your shadows to be.
The last thing is an option called Ray Traced Distance Fields. Ray Traced Distance Field shadows leverage the properties of a distance field representation of the scene to compute efficient area shadowing from dynamic meshes. This uses the same data as Distance Field Ambient Occlusion, and therefore has many of the same limitations.
To calculate shadowing, a ray is traced from the point being shaded through the scene’s signed distance fields toward each light. The closest distance to an occluder is used to approximate a cone trace for about the same cost as the ray trace. This allows high quality area shadowing from spherical light source shapes.
This can be accessed by going to your project settings > rendering > Generate Mesh Distance Fields. From there, navigate to the details panel on your directional light, and check on RayTraced DistanceField Shadows. This will enable the shadows for your light. What you can do is go to your cascade shadow maps, only in movable, and determine how far away from the camera these maps can be seen. Then, you can set your distance field shadows to start being called at the distance that the cascades end. So if you set your cascade distance to 1500 that’s how far away from the camera you would see those shadows. Then you would set your Distance Field shadows to 1500 so that at 1500 and further your Distance Field shadows would be drawn but not the cascade shadows.
I will also be linking you to a lighting troubleshooting guide that should be able to guide you through some of the tools and how to’s of how to go about using lighting and shadows within UE4.
Truth be told, I have never seen a completely crisp shadow. Take a look around you, when you get the chance, and notice the falloff each shadow has. This is of course dependent on number of lights, light angles, intensity of lights and what not. However, without movable lights and real time calculations, there will always be slight discrepancies.