Hi, i would like to use static (baked / pre-computed) shadows for my environment and cascaded shadows or even better RayTraced DistanceField shadows for dynamic/movable objects but it seems the editor only supports static + dynamic inset shadows?
When i enable cascaded shadows in the directional light, it enables them for all static meshes even if “dynamic shadows” is unchecked
on the static mesh. Apparently this is an intended feature acording to the Documentation but i would like to know if my
question above is possible as i would like a dynamic shadowing technique a bit more “performance friendly” and
flexible than dynamic inset shadows.
If you have correctly understand what ‘inset’ means, you’ll find any shadowing technique that creates per-dynamic object shadows and blends them with environment static shadows is equivalent to dynamic inset shadows.
An important question is, how can a dynamic object receive shadow from the static environment, since static shadows are baked into textures?
Think about the question and you will find that the answer is to re-render the shadows of static objects at runtime (called ‘PreShadow’), which is the real performance killer of dynamic inset shadows.
This is also why cascaded shadows cannot be disabled for static objects, because when you do so it effectively degenerates to dynamic inset shadows (You have to re-render the environment, and pick out dynamic objects, which is exactly what dynamic inset shadow and preshadow do).
The real solution to this problem, especially for large outdoor environment, is what CryEngine does: not to bake the final shadow results into textures, but to cache (or bake) the depth maps, then we only have to render the dynamic object’s depth maps and blend them together. However this is not doable if your team doesn’t have a graphics programmer.
Well thanks for clearing that up, do you have a link for that? i cant find it when i google “cry engine baked shadows”.
Also do you think epic could implement what CryEngine does in the future since its more performance friendly?