Crysis Lead Graphics Programmer Martin Mittring's SIGGRAPH 07 course

SlmDnk

Regular
Here's the PDF for Martin Mittring's SIGGRAPH 2007 course: http://portal.acm.org/citation.cfm?id=1281671&coll=ACM&dl=ACM&CFID=15151515&CFTOKEN=6184618

Advanced Real-Time Rendering in 3D Graphics and Games Course: Finding next gen - CryEngine 2

In this chapter we do not present one specific algorithm; instead we try to describe the approaches the German company named Crytek took to find certain rendering algorithms that work well together. We believe this information is valuable for anyone that wants to implement similar rendering algorithms because often the implementation challenges arise when combining with other algorithms. We will also describe briefly the path to it as that covers alternative approaches you also might want to consider. This is not a complete description of everything that was done on the rendering side because for this chapter we picked certain areas that are of interest specifically for this audience and limited ourselves to a presentable extend.

The work presented here takes significant advantage of research done by the graphics community in recent years and combines it with novel ideas developed within Crytek to realize implementations that efficiently map onto graphics hardware.
 
Thanks, it seems to finally cover the entire engine and not just some parts of it.

It's quite complex :O
 
Last edited by a moderator:
The screen space AO looks fantastic, one of those techniques like parallax mapping which don't seem that difficult to implement but can make a world in difference. Now if they had only provided the source to copy&paste;), lazy me...
But then I guess we will see implementations in a dozen demos and talks in a few weeks anyway.
 
The screen space AO looks fantastic, one of those techniques like parallax mapping which don't seem that difficult to implement but can make a world in difference. Now if they had only provided the source to copy&paste;), lazy me...
But then I guess we will see implementations in a dozen demos and talks in a few weeks anyway.
There was a paper at this year's I3D that does something very similar and describes it in detail.

The main disadvantage of these techniques is that it while they can add a bit of surface detail to small features (in screen space), they break down when - for example - you get closer to an object. Then you either have to increase your search radius to arbitrary sizes (way too slow), accept view-dependent AO changes (it will usually disappear as you approach it... very undesirable but probably what Crysis is doing), or handle "global AO" in a different manner (undesirable, often inconsistent and finicky). Anyways I'm not writing off the whole technique but I'm not totally convinced that this is the best way to go about it.

The fundamental problem is that AO is scene scale independent, while depth buffer neighbourhood searches are definitely not. It seems like something more like "Ambient Occlusion Fields", "Ambient Aperture Lighting" or similar directionally-based techniques (as AO is) are more appropriate. They have their own sets of problems of course, but they seem a more promising direction for reasearch IMHO.
 
Last edited by a moderator:
There was a paper at this year's I3D that does something very similar and describes it in detail.

The fundamental problem is that AO is scene scale independent, while depth buffer neighbourhood searches are definitely not. It seems like something more like "Ambient Occlusion Fields", "Ambient Aperture Lighting" or similar directionally-based techniques (as AO is) are more appropriate. They have their own sets of problems of course, but they seem a more promising direction for reasearch IMHO.

Good point... I will have a look at the papers on AO listed on the i3D 07 page. On a first glance they look great, but seem to require several helper textures and/or some preprocessing. What's so nice about the Crytek way of doing AO is that it sounds rather cheap performance wise, and is completely based on the z only pass which they need to do anyways. But then with simple, quick solutions you often get just that, rough and quick results. I guess we can find out how or good bad it looks when they release their demo at the end of september.
 
What's so nice about the Crytek way of doing AO is that it sounds rather cheap performance wise, and is completely based on the z only pass which they need to do anyways.
Yes certainly it's a nice method, particularly in that it transparently handles fully dynamic scenes and doesn't require any real pre-processing, etc. It may well work out very well for them, but personally I'd still be concerned about a shifting ambient term as the player moves around the scene (or even conceivably changes the game resolution, but theoretically they handle that at least...). That said, maybe they have some sort of elegant solution, or maybe that's why they just use it for the ambient term, which they expect to be fairly low-frequency. Time will tell :)
 
I wouldn't call depth-based edge bluring AA. It certainly helps with aliasing artifacts but it doesn't work in the signal processing sense, the detail you've lost in the sampling process just won't be there.
 
The screen space AO looks fantastic, one of those techniques like parallax mapping which don't seem that difficult to implement but can make a world in difference. Now if they had only provided the source to copy&paste;), lazy me...
But then I guess we will see implementations in a dozen demos and talks in a few weeks anyway.

It didn't take a few weeks. I just noticed this:
http://www.gamedev.net/community/forums/topic.asp?topic_id=463075

Two images and a small description.
 
Back
Top