Crysis 2 Post Processing Comparison Essay

Back to page one

Realistic Shadows With Variable Penumbra

In addition to the soft shadowing seen in the Parallax Occlusion Mapping example, Crytek has implemented Variable Penumbra Soft Shadows. Replicating reality, a Penumbra shadow becomes softer as the distance between the end point of the shadow and the shadow’s source increases, rather than remaining uniformly blurred.



Click for an animated comparison.

In the animated comparison the shadows, be they from the tree, the stretcher, or the ambulance, are identical when DirectX 11 Penumbra is disabled. The look and density is identical, and the darkness uniform, regardless of other elements in the scene. Enabled, the tree’s shadow is blurrier due to the distance over which it is cast, and the shadows of the ambulance, stretcher and big rig are sharper due to their proximity to the end point, dictated by the angle of the sun and their positions in the scene. In other words, all shadows in the scene no longer look exactly the same, adding depth and immersion to the environment.

Full Resolution High Dynamic Range Motion Blur

The Ultra Upgrade sees the return of full resolution temporal anti-aliasing, commonly referred to as motion blur. The new, improved and more efficient DirectX 11 version provides sharper motion blur compared to its DirectX 9 counterpart, resulting in higher overall image definition and the removal of blur bleeding on the character’s weapon and hands, as shown in the example below.



Click for an animated comparison.

Particle Motion Blur & Shadowing

Thanks to the reintroduction of the aforementioned temporal anti-aliasing, particles can be accurately blurred also, meaning the faster they move the more they will blur, an example of which can be seen in the fires in the very first level of the game. Furthermore, particles can be shadowed, as seen in the example below, improving lighting consistency and enhancing realism. And as a final upgrade, Crytek’s visual effects artists have gone back through the game and enhanced each set of particles wherever possible.



Note the accurate shadowing cast by the leaves of the tree and the effect of the shadows on the particles and smoke above the soldier and vehicle.

Sprite-Based Bokeh Depth Of Field

Like Sub-Surface Scattering, Sprite-Based Bokeh Depth Of Field is another big upgrade that will become more and more prevalent in upcoming games. Based on the out-of-focus depth of field effects used by filmmakers to add cinematic flair to their productions, Crytek’s DirectX 11 implementation replaces the DirectX 9 post-processing technique with a sprite-based rendering pass, allowing artists to dictate the shape and size of the Bokeh sprites, resulting in the circular or pentagonal blurred shapes shown in the in-game animated example below.



A real-world example of the Bokeh depth of field effect - Image Source



Click for an animated comparison.

Due to the limitations of DirectX 9 Crytek was previously forced to limit the number of out-of-focus areas in a scene to minimize undesirable under-sampling, the process by which a screen element is rendered below the screen’s native resolution and then stretched to correctly fit. The end result is a lower quality image that may appear blocky or aliased as the information contained within one pixel is being spanned across multiple pixels simultaneously. Enlarging a low resolution image on a large monitor shows a similar effect.

Despite the change to the sprite-based bokeh technique there is still room for improvement, as Crytek explains: “Unfortunately, graphics hardware is still a few years away from being able to efficiently use such techniques at full screen resolutions. Thus, this implementation is done at half resolution and includes a number of additional optimizations.” Despite these technological limitations the DirectX 11 implementation is far superior, blurring the entire scene and applying additional bokeh effects wherever defined, without any under-sampling.

Screen Space Directional Occlusion & Contact Shadows

Screen Space Ambient Occlusion was a significant step up from standard lighting when it was first introduced in the original Crysis, and now they’re introducing an upgrade called Screen Space Directional Occlusion.

SSAO gave scenes a greater sense of depth by rendering shadows and color accurately based on the depth of the image and the ambient light sources available. SSAO achieved this by taking a sample pixel, calculating how close it is to a random number of the neighboring pixels and then darkening it based on that number, the idea being that the closer pixels and objects are to one another the less light is being bounced between them and the available light sources. In practice the effect didn’t always work as hoped, suffered from banding and artifacting and was particularly taxing on the GPU, though when it did work it could greatly add to a scene, darkening creases, holes and surfaces that are close to each other.

Unfortunately, SSAO ignored all information regarding the directionality of incoming light, which is where Screen Space Directional Occlusion enters the picture. Screen Space Directional Occlusion requires very little extra in the way of processing power and creates superior results by accounting for the direction of incoming light and being able to bounce light sources once for greater realism, which can be seen most prominently in the in-game example below as smooth contact shadows cast realistically around the rubble and sand bags. Interior, enclosed scenes, such as office environments, are further enhanced by improved self-shadowing and dramatically improved global lighting, and as an added benefit SSDO can bounce colored lighting, an effect that is at times noticeable in outdoor environments.



The top row shows the difference between no Screen Space Ambient Occlusion, Screen Space Ambient Occlusion, Screen Space Directional Occlusion and Screen Space Directional Occlusion with one additional lighting bounce. The insets in the bottom row show the differences in detail. With Ambient Occlusion shadows are completely grey, whereas with Directional Occlusion red and blue shadows are visible. The images on the bottom right show the optional indirect lighting bounce. Note the yellow light, bouncing from the box to the ground in the right-most image.



Click for an animated comparison.

Realtime Local Reflections

Real-time, accurate reflections are one of the most demanding effects in modern-day game engines. In past versions of Crytek’s CryEngine, the options have been limited to planar reflections, as used for water, and cube maps, an extremely old technique that is only capable of producing low-resolution, poorly defined reflections that can’t be recursively reflected.

For the DirectX 11 Ultra Upgrade Crytek has implemented Realtime Local Reflections, which approximate ray-traced High Dynamic Range reflections, the technique used by Pixar and co. to ensure absolute accuracy when rendering their animated movie scenes. The approximated Realtime Local Reflections are able to self-reflect and reflect images from other surfaces also, and are of course fast enough to be rendered in real-time on modern-day technology (ray-traced reflections render at only a few frames per second on the most powerful of systems).

This upgrade is best demonstrated by the first example below, in which the soldier and his surroundings are reflected in the panel propped up against the wall, and the glossy floor. In the second example the entire scene is reflected to a high degree of accuracy.



Click for an animated comparison.



Click for an animated comparison.

High Resolution Textures

Weighing in at 1.7GB, the texture pack increases the resolution of Crysis 2’s assets by a factor of two, quadrupling the game’s memory requirements in the process. As such, players will require a 64-bit operating system and a graphics card with 1GB of memory just to enable them.



Click for an animated comparison.

The difference is dramatic with the pack installed and enabled, massively improving the appearance of roads, cobbles, and just about every object and surface in the entire game. Combined with tessellation, Parallax Occlusion Mapping and the other effects, Crysis 2 instantly becomes the benchmark for game graphics on the PC. And as an added bonus, all modders will be able to use the new textures in their projects.

Conclusion

Crytek took flak from gamers for not having created a PC-centric version of Crysis 2 at launch, but with the DirectX 11 Ultra Upgrade, these concerns are finally put to rest. As is clear to see from the images, the Crysis 2 DirectX 11 Ultra Upgrade lives up to its name. The combined use of tessellation and Parallax Occlusion Mapping improves detail levels in virtually every setting of the game. The enhancements to water, shadows, motion blur, though subtle when viewed as isolated screenshots, add substantially to the visual polish when experienced in unison in-game. Perhaps most importantly, with this upgrade, Crytek has reaffirmed its commitment to PC gamers and reasserted the graphical preeminence of the Crysis franchise.

Download the DirectX 11 Ultra Upgrade files here, and participate in the GeForce.com discussion thread here.

June 27, 2011

By Andrew Burnes

When Crysis 2 hit stores on March 22nd it became Crytek’s first multi-platform game to be developed solely by their studios throughout the world. Because of the level of work required to ensure that all three versions of the game were equally as good, Crytek decided on implementing DX 11 features post launch. Post release, the studio’s developers were free to focus only on the PC version of the game, and so for the past few months they have been beavering away in their offices to create the most extensive and advanced DirectX 11 features seen in any game to date.

Called the Crysis 2 DirectX 11 Ultra Upgrade, the three-part, 2.32GB release is a free visual upgrade add-on that introduces DirectX 11 tessellation, a wealth of graphical improvements for both DirectX 9 and 11, and a high-resolution texture pack only suitable for use on graphics cards with 1GB of video RAM.

As mentioned, DirectX 11 hardware tessellation is the headline feature, but the Ultra Upgrade also introduces soft shadows with variable penumbra, improved water rendering, and particle motion blur and shadowing. Having been originally omitted from CryEngine 3, Parallax Occlusion Mapping has been reintroduced, as has full-resolution High Dynamic Range motion blur, making the game’s use of camera panning more detailed and defined. To improve performance further hardware-based occlusion culling has been implemented, resulting in performance improvements from objects and scenery out of view not being rendered.

Furthermore, three new technologies have been developed from the ground up for the Ultra Upgrade. Realtime Local Reflections provide high-quality, next-gen reflections of all scene objects in real-time; Screen Space Directional Occlusion improves upon the lighting and shadowing generated by Screen Space Ambient Occlusion, a breakthrough technique first introduced by Crytek in the original Crysis; and sprite-based Bokeh depth of field effects bring a touch of the silver screen into Crytek’s shooter, as explained in our article.

To facilitate the Ultra Upgrade the game’s menus had to be modified:



The basic graphics menu allows users to enable DirectX 11 effects and select an overall quality preset.



The advanced graphics menu allows users to tweak the quality presets, dictate the amount of motion blur, and enable the use of high resolution textures if installed.

The new Ultra spec presets seen the image above allows the following effects to be enabled and disabled as the user requires:

  • Object: Tessellation & Parallax Occlusion Mapping
  • Particles: Shadows & Motion Blur
  • Post Processing: Full Resolution High Dynamic Range Motion Blur & Sprite-Based Bokeh Depth Of Field
  • Shading: Screen Space Directional Occlusion & Realtime Local Reflections
  • Shadows: Realistic Shadows With Variable Penumbra
  • Water: DirectX 11 Tessellated Ocean And Water Volumes
  • Motion Blur Amount: Dictate the level of motion blur, or disable it entirely
  • High Res Textures: Enable or disable the use of high resolution textures

Tessellation & Displacement Mapping

Tessellation and Displacement Mapping are the headline features of the Ultra Upgrade and are also the most noticeable in-game. Walls are now comprised of non-uniform bricks, rubble appears layered and other scene elements are more detailed. To its credit, the use of tessellation isn’t exaggerated, instead being used sensibly and subtlety to add detail at every possible opportunity. Its absence is immediately noticed, however, when disabling the DirectX 11 Ultra Upgrade option or viewing the animated comparison images in this article.



Click for an animated comparison.

For the Ultra Upgrade Crytek approached tessellation differently, making all suitable objects tessellation-ready, allowing their art department to decide which elements in a given level should be tessellated to strike a balance between performance and quality. With this unique method in place the artists could tessellate a particular object in one level where it is prominently featured, and not in another, where it may be a background detail.

One of the most important updates provided by the DirectX 11 API is the introduction of programmable hardware tessellation. Crytek decided to push harder in this area, since most DirectX 11 capable games on the market only use this feature for certain simple procedural effects.

To maintain the requisite level of performance and to achieve the best tessellation possible, Crytek utilized programmable Hull and Domain tessellation shaders. Skipping over the in-depth tech stuff, which you can read about here if you’re interested, the Hull shader’s primary function is to compute appropriate tessellation factors that dictate the amount of tessellation detail shown on-screen. By utilizing this intelligently the Hull shader can create adaptive tessellation, allowing for continuous view-dependent level of detail adjustment to keep frame rates optimal based on the player’s distance from tessellated objects – if the player is one-hundred foot away from a tessellated rock there’s no need to tessellate it to the level and quality used when the player is just one foot away.



Click for an animated comparison.

After the Hull shader has computed the desired tessellation factor the Domain shader can then manipulate the generated detail, conforming it to pre-determined shapes or performing a multitude of other complex functions. For the Ultra Upgrade the Domain shader is also utilized for Displacement Mapping to intricately enhance geometry, such as the ground beneath the player’s feet. A displacement map is a pre-made texture that stores height and detail information, which is then applied to a surface and the information tessellated to create the appearance of a bumpy road, for example, where previously it was uniformly flat. For Crytek, Displacement Mapping allowed the studio to enhance large areas with extra detail without a significant increase in memory usage.

Tessellation has another benefit in that it can accurately model silhouette edges from bumps protruding from the surface of the displacement map, smoothing edges and enhancing detail through shading without the loss of any extra performance. However, even the most powerful GPUs are unable to tessellate every object and element in an entire game and as such tessellation’s use is limited to those areas where it can make the biggest impact.



This wireframe image highlights the intricate use of extra detail to enhance the appearance of the alien object when tessellation is enabled.

Parallax Occlusion Mapping

Tessellation is a great technique for generating additional detail at the geometry level (terrain, walls, alien objects), but to improve graphical realism at the pixel level (fine ground detail, mud, tire tracks) bump mapping techniques like Parallax Occlusion Mapping can produce more detailed results with a smaller performance cost.

In the image below you will be drawn to the undulating tire tracks in the muddy surface of the scene. In a static screenshot this appears to be another example of tessellation, but to achieve such detail would be challenging due to the level of tessellation required. Simply put, the finer the detail, the more expensive the performance ‘cost’ becomes as triangles would need to be tessellated down to the size of a pixel, which would reduce performance by a significant degree. On the upside, areas rendered by POM can be shaded with real-time soft self-shadows, seen in the example as shadowing and shading in the mud to the left of the tire tracks and to the right of the left-most tire track, enhancing a player’s connection and grounding with the scene.



Click for an animated comparison.

Tessellation manipulates the underlying geometry of the scene, whereas POM manipulates the pixels based on the perspective of the viewer. Through tessellation a character could sit in a generated ditch, but with POM the ditch would be an illusion, so in the example presented above the character’s feet will not move or clip through the tire tracks, instead walking over them as if they were still being rendered in the DirectX 9 version of the game. While this may be a disadvantage in the eyes of some, it simply isn’t possible to render the entire area with tessellation while the GPU and CPU render all other elements of the game, so POM must be used in lieu of a better technique to maintain visual consistency with the other advancements introduced by the Ultra Upgrade.

Water Volume & Ocean Improvements

Tessellation has also been leveraged to upgrade Crysis 2’s oceans and isolated bodies of waters with tessellated goodness. The mesh, which dictates the appearance of the water and how it moves, is now dynamically tessellated based on the distance to the player’s camera, allowing for extra detail and the elimination of aliasing, noticeable on the previously used static mesh when the player’s camera rotated. Additionally, waves are more frequent through the use of Fast Fourier Transforms, a complex, high-speed mathematical number-crunching technique that helps produce realistic crests of water that react correctly with surrounding objects and the terrain.



Click for an animated comparison.

With regards to water rendering in general, Crytek has implemented further improvements. Chief amongst those is Sub-Surface Scattering, which allows light cast below the surface of the water to illuminuate the body of the water and simulate the resulting glow. The effect is subtle, but it does pave the way for Sub-Surface Scattering on characters and other scene elements, which will be the next big advancement in in-game lighting.

In addition to the tessellation of the water, water interaction has been improved through the use of extra displacement maps. In the example below, the character shoots the water, the engine calculates the impact of the bullet, the displacement map is referenced and the water accurately splashes upwards and outwards via extra tessellation, causing ripples across the nearby surface. To further ensure the accuracy of this effect Crytek has also upgraded the water physics engine, so when enemies and players move through water it should be as close to reality as possible within the limitations of current technology.



Note the tessellated splash emerging from the tessellated body of water following the impact of the bullet.

And finally, water crests have been upgraded with foam, helping to make the movement of the water appear more realistic. In the real world experienced sailors can easily ascertain the force of the wind on the Beaufort scale by simply observing the density and motion of crest foam.



A real-world example of crest foam on a large body of water - Image Source

Continue to page two to read about the other Ultra Upgrade additions >>

0 comments

Leave a Reply

Your email address will not be published. Required fields are marked *