Crysis 2 DirectX 11 Ultra Upgrade Effects Comparison - Page One
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 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.
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.
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.
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.
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.
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.
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