Crysis 2 Update a Perfect Case of Wasted Polygons 159
crookedvulture writes "Crytek made news earlier this summer by releasing a big DirectX 11 update for the PC version of its latest game, Crysis 2. Among other things, the update added extensive tessellation to render in-game elements with a much higher number of polygons. Unfortunately, it looks like most of those extra polygons have been wasted on flat objects that don't require more detail or on invisible layers of water that are rendered even in scenes made up entirely of dry land. Screenshots showing the tessellated polygon meshes for various items make the issue pretty obvious, and developer tools confirm graphics cards are wasting substantial resources rendering these useless or unseen polygons. Interestingly, Nvidia had a hand in getting the DirectX 11 update rolled out, and its GeForce graphic cards just happen to perform better with heavy tessellation than AMD's competing Radeons."
Not surprised (Score:5, Interesting)
One thing I learned from writing video drivers is that game developers are probably the very last people who should be developing graphics engines. We were constantly amazed by the insanely performance-sucking tricks they used to play which we then had to detect and work around; often their poorly-designed method of rendering something would be 10-100x slower than a sensible implementation.
Valve and id are the most obvious exceptions; I don't think we ever found them doing anything really retarded unlike certain big name developers I could mention.
Never attribute to malice...? ha! (Score:2, Interesting)
Never attribute to malice that which is adequately explained by stupidity
It's entirely possible that the tessellation is per-node. E.g. in the case of the barrier, only the top seems to benefit in that the handles jut out (why those handles aren't polygons to begin with is another question, given that it would take only 8 or so for each.. hardly making a dent in polygon budgets), but it's the entire thing that gets tessellation applied. Similarly, unseen parts get tessellated (why there is water underneath a city that will never be seen is yet again another qestion).
So while it could be explained by stupidity... when you're working on a high performance game, the problems indicated in that article would have quickly been dealt with. So perhaps malice is in play.
I suspect this will be (partially) fixed in an upcoming patch, as I doubt they'd want to be known as the game that was dropped from benchmarks due to apparent bias.
3D ready (Score:5, Interesting)
Re:Hmmmm. (Score:2, Interesting)
I'm not convinced. I'll have to talk to my friends in DX development to give me the final nod one way or another but I know this author is clueless about the subject.
There are a lot of times in computer graphics where something is seemingly wasteful--but is the most efficient solution.
For example the claim that "This is the most detailed parking barrier in cinema or game history" is untrue. Pixar's Renderman renderer at least for now is still probably the most popular renderer in VFX. For every pixel it renders it automatically tessellates multiple teeny tiny polygons. So if you rendered a 1080p parking barrier it would be more than 1080x1920 polygons. The wireframe if you could view one would just be solid.
I imagine what the crysis developers discovered was that being "dumb" about tesellation was more efficient than trying to adaptively tessellate the entire scene. GPUs can handle millions upon millions of polygons in rasterization. That's not a problem. What bogs down a modern GPU are shader networks.
If the Nvidia cards have a specialized (and largely unused) hardware tessellation engine that's not being put to use then it can probably tessellate everything within sight with minimal performance cost. What would cost it a lot of performance is evaluating every object on the fly to determine the proper level of tessellation.
Dumb is fast. Smart takes power. If there is a giant tessellated ocean wasting a 20k polygons under the ground but isn't being shaded... it's probably barely harming performance.
I'm sure they'll refine the system in the future and spend a lot of time on the art assets, but why hold back a feature if you can throw in a quick and dirty version now that's completely automatic and makes some of the game look better?