Taking the new model out for a spin
Yerli said that Crytek dedicated a pair of programmers to implementing the Shader Model 3.0 code path in Far Cry, and he said the entire retrofit took three to four weeks to complete. Obviously, implementing Shader Model 3.0 was more complicated than just ticking a checkbox for a new render target in a compiler, but it didn't require a rewrite of the game engine. Some of the changes Crytek made took only a few hours, while other elements of the retrofit took a week or two to complete. In fact, after the first two weeks of effort, Crytek had the initial version of the Shader Model 3.0 code path up and running.
Far Cry, of course, started out with a fairly sophisticated game engine that took advantage of Shader Model 2.0 to deliver per-pixel lighting. Yerli said Shader Model 3.0 doesn't bring any change in visual fidelity, just better performance. In fact, he emphasized the point repeatedly during our conversation. In the case of pixel shaders, lighting some objects covered with shader-based materials using Shader Model 2.0 required multiple passesone pass per light. If the object were affected by three lights, the pixel would have to take three passes through the rendering pipeline. With Shader Model 3.0, Crytek was able to consolidate its per-pixel lighting work so that up to four lights can be rendered in a single pass.
Crytek's revamped pixel shaders use branching and looping in order to calculate the effects of multiple lights in a single pass, but the instruction lengths of those shaders don't approach the 96-instruction limits of SM 2.0 pixel shaders. Instead, Yerli stated that the primary benefits of SM3.0 pixel shaders are more constants, tables, and the like, which lead to better performance. The effects you'll see in current games running on today's hardware, in his estimation, can be implemented within the 96-instruction limits of SM2.0; the longer instruction lengths in Shader Model 3.0 won't be practical until the next generation of graphics hardware arrives. For now, he said, SM2.0 will allow the creation of any effect developers want.
Beyond pixel shaders, Far Cry 1.2 uses another Shader Model 3.0 feature, geometry instancing, to accelerate game performance. With geometry instancing, the Far Cry engine can place multiple copies of the same 3D model onscreen at once, each with different attributes, using only one draw call. The game engine automatically uses geometry instancing whenever copies of the same static mesh appear at once. Although this capability primarily provides benefits in areas with lots of grass and foliage, the feature isn't linked to a single model type. In fact, like the pixel shader enhancements, geometry instancing is a game-wide enhancement that requires no change to the game content.
I asked Yerli about the image quality problems on GeForce 6800 cards in version 1.1 of Far Cry. He dismissed those as "just rendering issues" and said that the Shader Model 3.0 path cleaned up those problems. The SM3.0 path does include a mix of FP16 and FP32 datatypes on GeForce 6800 cards for the sake of performance, but Yerli said Crytek never sacrificed image quality for performance, a move that's "not an option" for them. Out of curiosity, I also asked whether he knew of any instances where the use of FP24 precision on ATI cards caused visual artifacts, and he said no.
The skinny on quick-save
As we wrapped things up, I veered off the path a bit to ask another question on everyone's mind: Will Far Cry 1.2 include a revamped save-game system? Yerli said there will be two versions of the 1.2 patch released. Crytek hopes to release the first version within the next week or so. That initial version of the 1.2 patch will not include a quick-save function. Some time later, Crytek plans to release a version 1.2 patch with quick-save enabled. Yerli said building quick-save into Far Cry has been a painful process, because the game wasn't designed with this feature in mind. However, Crytek is fixing bugs daily, and the quick-save patch will be released once all the bugs are squashed.
15 comments — Last by hmmm at 9:31 PM on 07/05/04
|1. BIF - $340||2. chasp_0 - $251||3. mbutrovich - $250|
|4. Ryu Connor - $250||5. YetAnotherGeek2 - $200||6. aeassa - $175|
|7. dashbarron - $150||8. Captain Ned - $100||9. Anonymous Gerbil - $100|
|10. Bill Door - $100|
|We threw a Minecraft party to test Samsung's Gear VR headsetKid-tested, virtually approved||10|
|Nvidia's GeForce GTX 1070 graphics card reviewedPascal power at a nicer price||104|
|A quick look at Nvidia's GeForce GTX 1060 graphics cardOur first taste of GP106||307|
|Radeon RX 480 performance revisited with AMD's 16.7.1 driverDid they fix it?||74|
|AMD's Radeon RX 480 graphics card reviewedStar of wonder, star of night||594|
|Corsair's K70 RGB Rapidfire gaming keyboard reviewedFulfilling the need for speed||14|
|Nvidia's GeForce GTX 1080 graphics card reviewedBlaise it||238|
|Corsair's Lapdog keyboard tray reviewedBringing the keyboard and mouse to the couch||19|
|Asus brightens up its Z170 Pro Gaming mobo with Aura RGB LEDs||4|
|iPad sales stabilize in Apple's fiscal 2016 third quarter||12|
|Seagate Nytro family now includes a 2TB M.2 SSD||6|
|Crucial fills out MX300 SSDs with 275GB, 525GB, and 1TB models||13|
|Nvidia and AMD ease 360-degree video production with new APIs||16|
|AMD FireRender is now the open-source Radeon ProRender||7|
|AMD Radeon Pro graphics cards bring Polaris to content pros||42|
|Radeon Pro Solid State Graphics keeps big data close to the GPU||75|
|Pascal powers up pro graphics with Nvidia's new Quadros||30|
|Now you can install Crysis directly on the video card!||+44|