Tweaking Skyrim Image Quality

Before the proverbial ink was dry on our Skyrim performance and image quality review, we were already busy planning to investigate INI configuration settings and see what we could come up with to improve Skyrim's graphics. We've found some changes that make the game look and feel a little more alive, and we're here to show you what we've come up with.

continued...

Tweaking Skyrim

When we set out to tweak Skyrim's graphics, we outlined a few criteria for what we were willing to do. First, tweaks had to be visible all or most of the time. There's no sense in adding graphical load for something you can't see, or can only see a small percentage of the time. For example, there are a number of tweaks that can be done to "enhance" the water in Skyrim, but when investigating them, we didn't see an improvement. We saw a modest performance hit but there was no detectable result, so we didn't include those here. Second, Skyrim had to remain stable. We experienced no crashes during our initial testing of this game, so adding instability to an otherwise stable experience was unacceptable, regardless of the potential improvements. Third and lastly, the game still had to perform in an acceptable manner. There's no sense loading down a fast game with so much eye-candy that it becomes unplayable.

In the "..\\My Documents\\My Games\\Skyrim\\" directory, there are two configuration files: Skyrim.ini and SkyrimPrefs.ini. Most of these tweaks belong in the SkyrimPrefs.ini file, but one goes in the Skyrim.ini file.


Land Shadows

The first graphical component we set out to improve was shadows. In the SkyrimPrefs.ini file, there is a line variable which reads "bDrawLandShadows=0". Changing that 0 to a 1 enables landscape objects such as mountains and boulders to cast shadows on themselves and each other. It is one of the more subtle tweaks to be done, but it does produce a visible result. We expected this feature to have a minimal performance impact, but we checked it first anyway.

Article Image

Click the above thumbnail for a larger view.

The total performance impact of enabling land shadows came out to 1.1FPS, or about 2.16%.

NOTE: It will help to see the differences in these screenshots by opening them both in new tabs and then flip between them. Or, download them to your computer and flip between them with Windows Photo Viewer.

Article Image Article Image

Click the above thumbnails for a larger view.

In the first image above, land shadows are disabled. In this scene, the sun is out of frame to the left and "behind" the mountain. In the left-hand screenshot, we can see highlights and somewhat bright reflections on what should be the dark side of the mountain. In the right-hand image, the light is occluded by the mountain ridge, and the mountain side is appropriately dark and shadows.

Article Image Article Image

Click the above thumbnails for a larger view.

The difference in these shots is more subtle than the first two, so we've added arrows to the image to help see the changes. Looking at the area to which the green arrow is pointing, we can see that the space between the cliff ridges is darker with land shadows enabled. The red arrow is then pointing to another shadow which is being cast on the cliff side by a rock above it. Without land shadows enabled, that shadow does not appear. To the right of the blue arrow, the space between ridges is again darkened by shadows with land shadows enabled, providing a higher overall contrast.

These effects are mostly pretty subtle, but they are visible, and they help to give the game greater contrast and a feeling of more visual depth.


Tree Shadows

The trees already look good in Skyrim, but they are a bit flat by default. SkyrimPrefs.ini file contains a line which reads "bTreesReceiveShadows=0". Changing that 0 to 1 enables self-shadows on trees. Again, first we check performance.

Article Image

Click the above thumbnail for a larger view.

And again, the performance impact of this setting is minimal. It reduces our average framerate by 1.3FPS, or about 2.55%.

Article Image Article Image

Click the above thumbnails for a larger view.

These shadows are easier to see. On the left hand image, tree shadows are disabled. On the right hand image, tree shadows are enabled. We can see that trees that are close to the player are generally darker in the middle and thus display greater contrast. Note, however, that distant trees are unaffected by this setting.


Shadow Resolution

In Skyrim, shadows cast on the ground by characters and objects look, to be frank, awful. They are blocky and the edges are jagged. Oblivion, which is more than 5 years old now, had better shadows. The problem is worse with close-up shadows than further away shadows.

In the SkyrimPrefs.ini file, there are several lines which deal with shadow quality. Of particular interest to us are two different ones: iShadowMapResolution=4096, and iBlurDeferredShadowMask=3.

First, we'll look at iShadowMapResolution. This value determines the resolution in pixels of the shadow map. A value of 4096 indicates that the shadows are being rendered at 4096x4096 pixels. We found that increasing that value to 8192 reduced the blocky quality a little, but didn't help the jagged edge problem. We tried values above 8192, but it made no further difference at all. Luckily, it didn't present much of a performance challenge.

Article Image

Click the above thumbnail for a larger view.

Performance was lessened by less than one half of a frame per second. That is a decrease of about 0.78%, which is well within the margin of error for real-world gameplay performance testing.

Article Image Article Image

Click the above thumbnails for a larger view.

This example shows a close-up example of a shadow cast by our character standing in front of a fire. On the left, the shadow is extremely coarse and blocky. On the right, with doubled shadow map resolution, shadows are still jagged, but less coarsely so. It is a small improvement, but it still needs help. The edges need to be smooth.


Soft Shadows

The iBlurDeferredShadowMask=3 line simply applies a blur filter to dynamic shadows. Lowering the number increases the sharpness of the shadow edge, but also exaggerates the jaggedness of the shadows rendered. Increasing the number blurs the shadow edge and makes them smooth. It's not perfect, and we have no doubt that some gamers will prefer to deal with sharper but more jagged shadows, but we think it is an improvement. For us, the best results came when we increased the number to 32. We tried higher values, but we saw no change beyond 32. As always, we checked on its performance impact first.

Article Image

Click the above thumbnail for a larger view.

This is our biggest performance hit yet, though it is still quite small. Changing the iBlurDeferredShadowMask option from 3 to 32 reduced performance by 5.1%, or 2.6 FPS.

Article Image Article Image

Click the above thumbnails for a larger view.

This made a big difference for us. The edges of the shadow are clearly a great deal softer with iBlurDeferredShadowMask set to 32, rather than 3. Again, some gamers don't like blurred lines and may prefer sharper edges to softer ones. For us, however, we feel that it looks better. There is room for improvement, though. The edges aren't as jagged, but it is still blocky in some areas.

When we combined iBlurDeferredShadowMask=32 with iShadowMapResolution=8192, the whole situation looked a lot better.

Article Image Article Image

Click the above thumbnails for a larger view.

The image on the left shows how shadows look out of the box with no tweaks. The image on the right shows increased shadow map resolution and an increased blur magnitude. The difference is stark and impressive. The left side image looks like a game from 2005. The right side image looks more like a proper modern game. It makes you wonder why these settings aren't the default settings for high quality shadows.