The Failure of Soft Shadows and Parallax Mapping

Soft Shadows

We've seen how soft shadows can be used effectively in games like The Chronicles of Riddick, and Monolith has decided to add this as an option in FEAR. Used correctly, soft shadows greatly enhance lighting in a game by giving shadows cast by objects different levels of darkness making them more realistic. This process can take up a lot of processing power however, and that's no exception for FEAR.

Basically, soft shadows are an effect that show how shadows tend to fade at the edges or cast overlapping lines on walls or objects depending on different factors such as light angle and distance. If you've ever made a shadow-puppet, you can see this clearly, as multiple outlines of your hand shadow overlap on the wall with varying degrees of darkness (depending on the light source). And if you were to move your hand closer or farther away from the light, you can see how the soft shadows change dynamically.

The idea is to capture this effect in a game environment, but as any programmer would know, translating this to a game engine can be a very complex undertaking. Not only that, but as we mentioned before, calculating multiple shadows in real time can quickly become a major leech of processing power. With FEAR, we've seen how big of a performance hit that we had when we enabled soft shadows, but you may wonder, "does the effect at least look good?"

The short answer is "no". The way that FEAR incorporates soft shadows ends up looking unrealistic; more stratified and strange than soft. It simply looks as though the game draws multiple shadows at the edges of objects and offsets them up, down, left and right very slightly at different degrees of darkness regardless of the light source. This wouldn't be so bad if the multiple shadows were not readily noticeable as such. It also would have been nice if the "blur factor" were more dynamic; in other words, moving the shadows closer together or farther apart given where the object (say an enemy soldier) is in relation to the light sources and shadowed surfaces.

This is difficult to understand until you see it happening in the game, but you can get a better idea of it by looking at a few pictures. We took some screen shots of a scene with and without soft shadows enabled with both NVIDIA and ATI cards. Please ignore the slight lighting and position differences of these screens.

Seeing the pictures gives you a little better idea of how the soft shadow option looks in FEAR. Since it's not impressive and it gives the game a major performance hit, we don't see any reason to enable it. It might look good with AA enabled, but unfortunately as of right now, both soft shadows and AA can't be enabled at the same time. They might allow this in some later patch, but as we've shown by our performance tests, the cost to performance would be almost too great to think about.

Parallax Mapping

While the detailed textures, excellent lighting, well done static and dynamic shadows (in spite of the soft shadow issue), large intricate particle systems, and various beautiful effects of FEAR come together to form an immersive and fluid graphical experience, there are a few caveats. To their credit, Monolith was very aggressive with the features that they included and are on the leading edge of technology. The use of a deep parallax mapping algorithm to represent damage is a very cool idea, but the implementation used in FEAR doesn't include key features such as self-occlusion and self-shadowing. When passing a wall with a chunk blown out, the hole will swim around, flatten out, and eventually look like unidentifiable goo stuck to the wall as the angle gets very steep.

The parallax mapping used looks great from angles where the entire interior of a hole can be seen. The problem occurs at viewing angles where a near edge would need to block the view of part of (or the entire) interior of the indention. Rather than occluding anything, parts of the texture that should become invisible are still shown (albeit distorted). This completely destroys the illusion of depth at steep angles by making the texture kind of swim until it totally loses its three-dimensionality. There are algorithms available that can represent correctly self-occlusion in parallax mapping. While we can appreciate cheaper parallax mapping algorithms as a kind of upgraded bump mapping, dramatic surface deformation should either be done more correctly or not at all in cases where the viewer can move to angles that break the effect.

But again, we would love to give credit where credit is due. We would rather see game developers experiment with new technology and put something out there than let the true power of our graphics cards remain dormant. Monolith was ahead of the curve with the graphics in Tron 2.0, and they haven't let us down with the quality of FEAR.

The Game/Test setup No Soft Shadows and No AA/AF Performance Tests
Comments Locked

117 Comments

View All Comments

  • Sunrise089 - Thursday, October 20, 2005 - link

    Lack of testing at different graphics settings - bad

    Lack of soft shadows + AA testing - sort of bad

    Lack of SLI testing - quite bad

    Lack of an older card like a 9800pro even if only to see how badly it plays - sort of bad

    Testing two unavailable ATI cards while not testing ANY previous gen ATI cards - terrible
  • DerekWilson - Thursday, October 20, 2005 - link

    We tested three different settings combinations for this game where we normally only test 2. I agree that it would have been nice to include a test with settings that allowed the midrange cards to acheive smooth framerates at high resolutions. We did test with and without the setting that has the single largest impact in framerates (soft shadows).

    It is not possible run the game with antialiasing and soft shadows enabled at the same time. If AA is enabled in the control panel and soft shadows are enabled in the game, Monolith notes that rendering problems will happen. AA + Soft shadows is ommited because we could not include it.

    The only SLI option we currently recommend is the high end combination of 2x 7800 GTX. Rather than doubling any other product, it is a better option to upgade to a higher end solution and sell the lower performance part. Testing SLI and crossfire combinations of every card and including other X800 and 9800 series solutions would have ended up doubling our test load and our time to publication. We tried to choose well a smaller sample of cards that would present a full representation of what would happen in the mid to high end space.


    And after reading the comments on this article, it is quite apparent that we chose poorly. In the future, we will include at least an X800 XT or X850 XT and a 7800 GTX SLI test.

    It just isn't possible to test every setup imaginable, but rest assured that we will absolutely listen to the feedback and include at least a couple more cards and tests in future articles of this nature.

    Thanks very much for your feedback,
    Derek Wilson
  • Le Québécois - Friday, October 21, 2005 - link

    Don't forget the X800XL ...For a long time this card has been the best bang for the buck you could get so its probably a card that many Anand readers have.
  • Sunrise089 - Thursday, October 20, 2005 - link

    Absolutely understand the point now about not being able to run soft shadows and AA together, sorry for calling you out on that then. For settings I meant maybe testing at Medium or High rather than whatever the Max setting is called. Thank you for caring to read my feedback, it is appreciated.
  • dashrendar - Thursday, October 20, 2005 - link

    Hey Derek,

    How hard is it to incorporate min/max FPS in addition to average FPS in your benchmarks? I see this info in other sites, and it really helps to see how much it dips throughout a timedemo. I think it gives a better representation of whether a game will have some or a lot of hiccups.

    Thanks
  • DerekWilson - Thursday, October 20, 2005 - link

    We will work on ways to include this data effectively. There are always more numbers to add, and not always good ways to represent that data. But we will absolutely look into it. Any suggestions on how you would like to see this data represented?
  • 9nails - Saturday, October 22, 2005 - link

    I'm not saying run out and steal these graphs, but HardOCP has pretty good charts that show the frame rates over the timedemo. Pretty coolio. http://www.hardocp.com/article.html?art=ODU1LDM=">http://www.hardocp.com/article.html?art=ODU1LDM=

    And, please please please consider using a system that is a closer representation of that the average READER might have!!! (http://www.steampowered.com/status/survey.html)">http://www.steampowered.com/status/survey.html) Your dream gamer rigs are absurd and do not offer any represention what we READERS can expect from the game. If you're reviewing GPU's, toss some absurdly low end ones in and maybe some of your highend cards in, ***only if they can be found in local stores and/or available through your advertisers***. This gives us READERS a better idea of what some new hardware may do for our systems. If the games run like crap on older hardware, maybe these developers will learn how to write better code!? Trying to find the most amazing performance, isn't always important. Know what I mean?
  • fogeyman - Friday, October 21, 2005 - link

    I would be fine with two charts, one for minimum and one for max. Integrating the two charts would probably make things too cluttered. As far as the specifics go, I like how you set up your charts right now. So simply duplicating the format and changing the content is great for me.
  • Icehawk - Thursday, October 20, 2005 - link

    Oh, and it hiccups like crazy on my PC...
  • Anemone - Thursday, October 20, 2005 - link

    I could have expected this kind of performance. Kudos for a decent article.

    The very best of both ATI and Nvidia are not even up to the task of 1600x1200 with 8AF and soft shadows. I wouldn't even want to imagine what 1920x1200 would look like(don't know if Fear can do that res or not). But it's clear to me the R580 and the G80 are obviously needed for the next generation. People often argue that GPU's of the best today are overkill. Clearly we can see that even the very best of today can be brought to its knees by a shipping game, let alone what may come in the next year.

    Let's hope those newer chips don't take a year to get to us.

    :)

Log in

Don't have an account? Sign up now