Saturday, March 28, 2009

They're called "Shaders"

Everyone is swooning over the darling of virtual environment engines, Crytek. Used for such things as Farcry, Farcry 2, and the infamous Crysis. The Crytek engine (now in Crytek 2 and recently announced Crytek 3) sports very impressive graphics for a game engine, and in many cases reaches into the realm of near photorealistic.





While the Crytek engine series is very impressive, there is a very simple explaination for why this engine is so graphically amazing. The secret is Shaders. HDR Shader, Bloom Shader, Depth of Field Shader, Motion Blur Shader, Atmospheric Scattering Shader and others all working in concert.

Add to that some lighting shaders and soft shadow shaders for Shader Model 3, and you begin to understand just what the Crytek engine series is all about. This isn't to say that the Crytek series is not impressive, because it really is. But running that many shaders simultaneously is obviously going to require serious hardware (as if you didn't know this already).

If ever you doubt this, simply turn on the shaders for SecondLife and you will see that it does have a negative impact for less than stellar hardware.

Breaking down the Crytek engine series a little further, let's look at the ocean system. Ocean surf, 3D water, refraction and reflection... Ocean Surf is a Shader. 3D water is easily taken care of by Projected Grid techniques, refraction and reflection are also shaders applied to the surface and under surface.

Add to that 11x Antialiasing on the hardware, and the environment looks fantastic, although you must admit that a majority of the greatness for Crytek happens to lay in shaders. Tesselation routines can take care of the terrain, and as for the trees and vegetation, start with high end tree models (we suggest from XFrog.com), and add PhysX or Havok Soft Body Physics to them. Now you suddenly have gorgeous looking trees with destructibility and reactive behavior to the wind.

Throw in Parallax Extrusion for textures, and now you have simple and more realistic 3D surfaces without building geometry to handle it. This would be the solution for things like the sand on the beaches or brick walkways.

Combine soft shadows on the GPU with Per Pixel Lighting, as well as a handful of other shaders (like Volumetric lighting) and suddenly everything looks photorealistic. But the real question is - if all of these "innovations" are just shaders, is access to the Crytek series of engines really worth $750,000 and higher? How about the ridiculous requirements just to qualify for using these engines?

Crytek has a commodity and has made a name for themselves in the industry as the company which brings you amazing landscapes and photorealistic environments. By doing this, there is enough hype around them to warrant the lunacy of being the "it" engine to use for a gaming or virtual world project.

Problem is, a majority of Crytek is simply using Shaders to achieve the photo realism. Shaders which just about any 3D Engine on Earth can easily use right now.

So the reality of Crytek is that it's an impressive engine, yet it's not special in any way other than the fact that most game development houses are currently too lazy to develop engines themselves or work on the shaders to use for their current engines. Crytek happens to be the lazy man's way out when developing, and is the quick and dirty way to jack up the hype around their project (by being specially selected to use the Crytek technology) as well as look visually stunning with little to no hard work.

Any hobbiest programmer can match the Crytek engine using something like OGRE3D. Just include all of the required shaders, define high definition content, and use high definition textures. The only real difference is that Crytek was the first group to go ahead and put it all together professionally.

In the end, $750,000 + just to license an engine which is essentially a bunch of shaders seems a bit overboard. But weirder things have happened in the game development world.


No comments:

Post a Comment