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 >>
|Xbox 360||PlayStation 3|
|Install||5.5GB (optional)||2895MB (mandatory)|
|Surround Support||Dolby Digital||Dolby Digital, DTS, 5.1LPCM, 7.1LPCM|
Still one of the most resource-intensive games when run on max settings, the original Crysis ranks as one of the most visually impressive games ever made - an extraordinary technological statement from a developer dedicated to a unique "maximum game" ethos.
News that Crytek would be embracing cross-platform development and working with Xbox 360 and PlayStation 3 was met with concern from its fans: would the PC game be left behind as Crytek refocused its resources on technologically outdated consoles? Could the Microsoft and Sony platforms be cajoled into running code designed for massively more powerful hardware?
We had our doubts, but on balance, Crysis 2 on console is an exceptional release, only held back from true greatness by being a touch rough around the edges: glitches, LOD pop-ins, some really impactful frame-rate dips... compromise is an inevitability when working with consoles, but which platform is better suited to running CryEngine 3? Here's where you find out.
Let's get busy and break out the comparison assets, kicking off with this extended head-to-head video, accompanied by a colossal 720p comparison gallery.
You might notice a difference in the aspect ratio of the HUD between the two versions of Crysis 2, with the text and other elements being considerably wider on PS3 than they are on the Xbox 360 release. The reason here is fairly straightforward: while Crysis 2 runs at 1152x720 resolution on the Microsoft platform, PS3 operates at a base resolution of 1024x720. The final framebuffer is then sent out to RSX, where a bilinear upscale gives us the usual 1280x720 output - we see exactly the same differences (along with the reasons behind it) on Starbreeze's Chronicles of Riddick. Updated: Erroneous 360 resolution now corrected.
In short, then, Xbox 360 benefits from a 12.5 per cent resolution boost over the PlayStation 3 version of the game. While it is true that the action generally looks clearer and not quite so blurred on the Xbox 360, it's also the case that when the game is in full flow, the amount of post-processing effects in play, including camera and object-based motion blur, tends to equalise the visuals somewhat. Quite why there is a resolution difference at all is intriguing. Having fewer pixels to process obviously helps reduce fill-rate concerns, but curiously, notes left within the config files suggest that RAM was also a consideration: apparently 14MB of memory is saved by dropping res (which seems to suggest a hell of a lot of internal buffers being used to compose each frame).
Another aspect that lessens the impact of the resolution difference is CryEngine 3's chosen anti-aliasing technique. Halo: Reach-style temporal anti-aliasing is being used on objects a set distance away from the camera, with an edge-detect/blur mechanism in play for elements close to the player. Both of these techniques add further blurring to the visual effects chain, and again serve to make the resolution gain on Xbox 360 less noticeable in the heat of the action. More resolution is obviously a good thing and there is an overall feeling that the image on Xbox 360 is cleaner and crisper, but only with a direct A to B comparison do you actually feel you're missing anything on the PS3 rendition of the game, which still looks very impressive.
Indeed, other elements of the visual make-up of the game do their job in helping to bridge the difference. For example, check out this shot: texture filtering on the tarmac looks better on the PS3 - base resolution isn't always the paramount element in image quality, something we touched upon in the Alan Wake sub-HD debate.
While Xbox 360 takes a commanding lead in terms of the raw number of pixels being generated, PS3 appears to function with a higher degree of texture filtering.
Bearing in mind the rich range of cutting-edge visual effects in CryEngine 3, there's been plenty of speculation that certain graphical features would be better suited to particular platforms. Certainly, early tech demos of CryEngine 3 did seem to suggest that lighting in particular wasn't quite so refined on the PlayStation 3, while some pre-release shots suggested that light-shafts/god rays were not present on Xbox 360.
The reality is that Crytek has done an impressive job in matching the engine spec across both platforms, and even where its own config files suggest substantial differences (for example in the rendering of water effects, where the PS3 setting seems to dominate 360's), we don't really see any kind of substantial difference in the final game: the chances are that some very low variables in the .cfg files may simply invoke hardware-specific code - perhaps the water utilises 360's tessellator, for example.
Concerns that some visual effects would be realised to higher levels of precision on certain console platforms prove to be mostly unfounded - Crytek's claims on cross-platform parity are quite robust.
Resolution and texture-filtering aside, there are some differences in the presentation of the two console versions of Crysis 2, but these are mostly incidental effects that have only a tiny effect on the game's overall look, and present no impact whatsoever on the core gameplay experience. But for the record, let's take a closer look at what our comparisons unveiled.
Crysis 2: Xbox 360 vs. PS3. Use the full-screen button for 720p res, or click on the link below for a larger window.