Slashdot Mirror


Crysis 2 Update a Perfect Case of Wasted Polygons

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."

17 of 159 comments (clear)

  1. Hmmmm. by Moryath · · Score: 4, Insightful

    So you're saying that a graphics card company just *might* have tried to get a company writing a largely-used benchmark in their favor.

    Not that it's ever happened before... *coughintelnvidiacough*...

    1. Re:Hmmmm. by Luckyo · · Score: 3, Informative

      It's worth noting that most benchmarks use a certain version of popular games. If next version breaks benchmark functionality in a significant way, testers simply continue using old version.

      Then again, has crysis 2 ever been used a serious benchmark? The game actually looked worse then crysis (especially warhead) in terms of graphics in spite of having higher polygon counts and such, and was designed from ground up to work on machines that would never be able to run original crysis or warhead (current gen consoles).

    2. Re:Hmmmm. by scumdamn · · Score: 2

      I'm betting a lot of review sites wanted to use it as a DX11 benchmark but they found out about this crap and put a stop to that. If you do see a review site using it to benchmark DX11 you know they're shady or biased or not terribly thorough.

    3. Re:Hmmmm. by im_thatoneguy · · 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?

    4. Re:Hmmmm. by Anonymous Coward · · Score: 5, Insightful

      I work in games. You sir, are an idiot. Are you seriously comparing a game engine to RenderMan? We have to render a game's frame in 16ms, you have to render a frame in something less than a minute. I read the entire article. This was clearly a patch meant to appease the PC gamers into thinking that it wasn't a shoddy console port.

    5. Re:Hmmmm. by lordSaurontheGreat · · Score: 2

      Using a negative frustrum-exclusion algorithm to selectively render only certain parts of the view graph is really common. It's trivial to eliminate things from the render pipeline based on visibility.

      --
      Consider yourself spoken to.
  2. Not surprised by 0123456 · · 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.

    1. Re:Not surprised by tepples · · Score: 3, Insightful

      Valve and id are the most obvious exceptions

      Try saying that to John Carmack.

      I think that was the point. Mr. Carmack works for Idthesda, and Valve's Source engine is based on GoldSrc, which in turn was forked from the engine of Quake (early Id Tech 2) written by Mr. Carmack.

    2. Re:Not surprised by thegarbz · · Score: 2

      Only to lose business to a competing product which does optimise it's drivers? What kind of arse backwards logic is that?

  3. Never attribute to malice...? ha! by Anonymous Coward · · 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.

  4. 3D ready by gmuslera · · Score: 4, Interesting

    Once more software is steps ahead of hardware. The game is ready for hologram projectors, if you can't see those layers of water is because you are using a 2D display.

    1. Re:3D ready by Opportunist · · Score: 2

      Damn right, in a 4D display you could see them, even if they're underground!

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  5. What a minute by SilverHatHacker · · Score: 2, Funny

    People actually play Crysis? I thought the whole reason it was made was to be a test for your graphics card? One giant benchmark.

    --
    Funny may not give karma, but +5 Informative never made anyone snort coffee out their nose.
  6. Re:Why exactly does this have an AMD picture by it by hairyfeet · · Score: 4, Insightful

    Uhhh...because this is another case of Quack.exe? look at the facts: You have a highly intensive programming trick used for no fucking reason on completely stupid shit like concrete dividers. Have you EVER said to yourself 'Boy this game would have totally had me if it had only rendered the concrete dividers in such loving detail I can make out the scuff marks from the boot of the guy who last leaned on it'?

    Then you have this SAME technique used to slam the GPU even when it isn't on the screen or will EVER be seen, such as rendering highly tesselated water being rendered underneath the land. This isn't Minecraft, they can't dig their way down to actually see the fricking water!

    Then it turns out that this game, which has often been used as the standard for benchmarks, by loading up the game with worthless crap the user can't even see will surprise surprise...run better only on certain Nvidia GPUs.

    I don't think we need to call in Kojack to crack this case folks. Nvidia used their position to make another Quack.exe so that the benches made using this game will score higher on their GPUs, by loading the game up with invisible crap that slams the GPU in a way they designed theirs to take better than the competition. Hell I wouldn't be surprised if they tesselated the manhole covers just to get the count up! The sad part is like the Intel compiler (which is STILL rigged BTW) most gamers won't know they are being had unless someone points out the BS that is going down behind the scenes.

    --
    ACs don't waste your time replying, your posts are never seen by me.
  7. Re:Exactly. Perhaps a better phrase... by scumdamn · · Score: 2

    This one is just blatant as fuck. Tessellated invisible water running under everything? Really? Nvidia has been touting their better tessellation performance for how long now? And Crysis was the benchmark of choice so they had to go muddying up Crysis 2 to try to get the advantage.

  8. tessalation of flat surfaces by gl4ss · · Score: 2

    makes the shading on them look different, so it's not all wasted vertices(well, depending on how they calculate the shading). but you can easily test that on some modeller, make a cube that has each side made of two triangles, observe how it's shaded with basic opengl shading - now, turn on some tessalation(while keeping the shape as it is) on it, and you can see the difference, you can see highlights on flat surfaces even without applying some fake phong technique.

    this or any graphics upgrade doesn't help with crysis lacking in complexity due to launch on consoles though so who cares - the memory and cpu available for the game logic was dictated by that.

    --
    world was created 5 seconds before this post as it is.
    1. Re:tessalation of flat surfaces by am+2k · · Score: 2

      makes the shading on them look different, so it's not all wasted vertices(well, depending on how they calculate the shading).

      Uh, nope. Tessellation changes the vertices, while shading is done in the fragment/pixel shader. Those are different stages in the pipeline. The graphics card automatically does linear interpolation of positions, normals, UVs, etc. between the vertices, which is what you want in all cases that I'm aware of.

      Your modeller probably has the most basic material applied (for performance), maybe even Gouraud shading, so that's not really a good reference. CryEngine3 uses highly advanced shaders, where things like vertex-independent highlights are a trivial matter.