Since launching the GeForce 6800 Ultra, NVIDIA and their board partners have been quick to promote the chip’s new blistering 16 pipeline architecture and other hardware features such as its 256-bit memory interface with 256MB GDDR3 memory, but certainly the most talked about feature has been the card’s support for Shader Model 3.0 (SM 3.0) In fact, shortly after launching GeForce 6800 Ultra, NVIDIA released a set of SM 3.0 screenshots with Far Cry that created quite a buzz throughout the graphics community, despite the fact that they were compared to low quality 1.1 shaders!
We highlighted all of this in Part 2 of our 3D Performance with Far Cry series of articles. In that piece, we discovered that Far Cry uses 1.x shaders for practically everything, including the game’s beautiful water. 2.0 shaders were only used for lighting on both ATI and NVIDIA hardware. In fact, we even provided GeForce4 screenshots as evidence of this. Therefore, when NVIDIA contacted us last week with news of a Far Cry patch with SM 3.0 support, we were a little skeptical if the parties involved could actually deliver. It turns out that’s exactly what they’ve done however!
Let’s clear up a few things 2
First things first however, Crytek’s Far Cry 1.2 patch doesn’t impact image quality, at least not yet. Far Cry 1.2 looks just like Far Cry 1.1, only a few of the bugs with NVIDIA cards have been resolved. Unfortunately, in the process, a new bug has cropped up for ATI’s RADEON X800 concerning texture quality. At times on uneven surfaces the level of detail on textures will be rendered incorrectly. We’ve provided the following screenshot to illustrate the problem:
Fortunately, the error would only occur at very high resolutions, so a quick remedy would be to turn down the screen resolution.
Despite this, Far Cry will be getting an image quality boost in an upcoming patch. A few weeks ago, the first batch of Far Cry screenshots with high dynamic range lighting were posted on the Internet. Rumor has it that this feature will be unique to NVIDIA’s GeForce 6 series however.
So if image quality is unchanged, what modifications has Crytek made to Far Cry in their latest patch? Performance has been improved!
Crytek has implemented pixel shader 3.0 and vertex shader 3.0 improvements into Far Cry 1.2. On the vertex side, geometry instancing has been implemented for rendering grass and other foliage. With instancing, data is replicated from within the vertex buffer to create many examples of the same type of object. This is perfect for an application such as replicating multiple strands of grass to encompass a jungle. In future patches we’ve been told that Crytek will implement even more examples of instancing for even better performance improvements.
The second addition Crytek has made involves lighting. Crytek has used PS 3.0’s increased number of interpolated registers (8 in PS 2.0a and PS2.0b versus 10 in PS 3.0) to collapse multiple lights into one pass. We were told that instead of an individual pass per light with PS 2.0, up to three or four lights can be combined into one pass using PS 3.0. This should bring performance improvements in scenes with multiple light sources.
So what do you need if you’re a GeForce 6800 user and you want to get SM 3.0 up and running in Far Cry? First, you’ll need the 1.2 patch. We’ve been told that Ubisoft will be releasing it on July 5th, next Monday. Next, you’ll need a copy of DX9.0c. Currently, the only way to obtain DX9.0c is to download Microsoft’s Service Pack 2 release candidate. Finally, you’ll need an NVIDIA display driver with SM 3.0 support. NVIDIA provided us with a copy of ForceWare 61.45 for our testing.
With all of this in hand, plus four new demos that come with the new 1.2 patch, we were eager to test out the improvements, but first let’s get started with our own custom demo, which is based on the map mp_monkeybay (which happens to have its fair share of grass in it).