Beauty hides in the shadows
In the upcoming winter expansion we’ll be upgrading the shadows in EVE. They will look a whole lot better, despite a barely measurable increase in GPU memory and workload. The upgrade should get rid of the nasty “jaggies” and blockiness while conserving the hard shadows that a dark and dangerous sci-fi game needs.
So what did we do?
The first improvement makes better use of the available shadow map resolution. To render the shadow map we need to set up a viewpoint for the light source that encompasses the entire shadow receiver. Previously this was done in a correct, but not terribly precise way; we’d take the bounding sphere of the ship, build an axis aligned bounding box (AABB) out of it, and project this onto the light source’s view. For any ship that’s not very sphere-like, which is most of them (insert caldari jokes), that added a big margin with empty space for most viewpoints. So, we now take the AABB of the ship itself, and directly position the box in space, then project it onto the light. The result is that the lights have a much tighter idea of where to focus.
Here’s a comparison showing the improvement in perceived shadow resolution, despite keeping the actual texture dimensions the same.
Click to enlarge
Better resolution means the jaggies and distortions are a lot smaller – but they’re still there. We are already using Variance Shadow Mapping, but the poor resolution, some inaccuracies, bugs, and less than optimal choice of magic numbers didn’t do it full justice. We also weren’t filtering our shadow maps, perhaps because the combination of all these factors meant that a decent filter wasn’t making much difference anyway.
However, all of that has now been fixed and the result is that most jaggies get smoothed out without losing all of the fine details or making the shadows (too) soft.
Here’s a comparison with the old solution at the top, and the new filtering at the bottom. The left column uses 1024^2 shadow maps, the right 512^2.
Click to enlarge
Is this now perfect? Unfortunately not; every shadowing solution has its own set of trade-offs, and so does VSM. The new technique has its quirks, but we hope that these changes will look fantastic in 90% of the cases, and a little funky only in the remaining 10%; this should be a step up from the old shadows, which looked a little dubious 100% of the time.