IntroductionFar Cry, the popular first person shooter from CryTek, published by Ubi Soft, has been a runaway success since its release. In this reviewer's opinion it combines decent gameplay with some excellent graphics, and while it's frustratingly hard at times, it's a decent shooter. The graphics have quite rightly held center stage during most discussions about the game, with the CryEngine looking absolutely gorgeous and their artists populating it with fantastic looking art.
If I had to level any criticism at the way the game looks, it'd be that some levels could use some more detail textures, with the contrast between a surface without a detail texture or other image enhancing per pixel effects pretty harsh when placed next to a surface with a detail texture. But then I'd be splitting hairs. It looks awesome; iD, Valve and GSC won't hold any good looks title without a fight.
CryTek have also put their claim down for that title recently with some released screenshots of their upcoming 1.3 patch, which implements high dynamic range lighting effects, amongst other things, making it look awesome. But before that patch comes, which will require a complete change of some game art, CryTek will release the 1.2 patch on Monday. NVIDIA sent the 1.2 patch out to editors and web masters recently, for their evaluation on GeForce 6-series hardware. The 1.2 patch brings with it some general speed improvements in the SM2.0 path, for most current hardware happy running it. But the largest new thing is support for DirectX Shader Model 3.0 on 6-series GeForce cards.
Shader Model 3.0 in Far CryShader Model 3.0 support on 6-series GeForce cards means support for new SM3.0 techniques like geometry instancing. Geometry instancing is where the card is given just one set of geometry data for a model in the scene, along with a stream of modifiers for that single model, that allow it to be slightly changed for each copy that's needed.
Far Cry's classic example is for blades of grass in the outdoor levels. Most of the blades are identical, just copied as much as is needed to create the area of grass required. That copy means the same geometry for each blade of grass has to be uploaded to the card, once for every blade. Geometry instancing reduces that to one copy and a stream of modifiers. There's no context switch for that model's geometry, just a modifier from the supplied stream, reducing the overhead cost.
Combine that with single pass world lighting in CryEngine's SM3.0 render path, compared to multi-pass light rendering in the SM2.0 path, along with one or two new PS3.0 shaders for effects like water and reflections, and you've got a patch that's supposed to increase performance in the SM2.0 case, versus patch 1.1, and increase performance in the SM3.0 path on NVIDIA cards, compared to the SM2.0 path in the same patch.
So theoretically performance increases with Far Cry should go like this:
SM2.0 path in 1.1 -> SM2.0 path in 1.2 -> SM3.0 path in 1.2.
As far as graphical increases go, there aren't really any to speak of, bar a couple of slightly different shaders in the SM3.0 path. The real graphical changes will come in the 1.3 patch, with HDR and some completely new game art to take advantage of it.
Curiously, the HDR part of CryEngine appears to be functional in the 1.2 patch, however there are no levels equipped to take advantage of it just yet. Maybe something for modders to experiment with on Monday.
So I equipped myself with the right tools....
....and set off to see just what was what in the new 1.2 patch.