Monday, 12 September 2011

Tesselation myth in Crysis 2 / El mito de la teselación en Crysis 2

Muchos me han instado a solucionar los problemas de rendimiento causados por la teselación que se habían "descubierto" en unas páginas de análisis técnico.

Yo no estaba en absoluto de acuerdo con los análisis que esas páginas habían realizado, y mucho menos con el revuelo que dichos análisis habían causado en la comunidad de Crysis 2.

He estado varios días preparando un montón de imágenes desde el editor del juego. Imágenes con diversas opciones activadas, con el conteo de polígonos, de frames por segundo, activando y desactivando la vista de malla y usando el modo debug de la teselación para resaltar en color rojo las mallas teseladas. Jugando hasta el límite con las variables de distancia de teselado y de tamaño de triángulo.

Al final, tenía tantas imágenes que creo que el mensaje iba a quedar diluido. Además mi inglés no es suficiente para plasmar todas las conclusiones que se deducían de las pruebas. Necesitaba algo simple, como aquella imagen de la malla del agua por debajo del suelo. Esa imagen, aunque se utilizó para sacar conclusiones incorrectas, hizo muy bien su cometido de publicidad directa.

Esta mañana he sacado unas pocas capturas que resumen a la perfección lo que quería explicar sobre la teselación. Con ellas, sobran las palabras. Son del juego. Del juego, no del editor.


---------------------------------


Many have urged me to solve performance problems caused by tesselation. Those problems had been "discovered" in a few sites of technical analysis.

I was not at all agree with the analysis that those sites had been made, much less the hype that these tests had caused in the Crysis 2 community.

I spent several days preparing a bunch of screenshots from the editor. Screenshots with different options enabled, polygon count, frames per second, turning on mesh view and using the tesselation debug mode to highlight in red the tessellated meshes. Playing to the limit with tesselation distance and tessellation triangle size cvars.

In the end, I had so many images that I think the message would be diluted. Also, my English is not enough to capture all the conclusions deduced from the evidence. I needed something simple, like that screenshot of the ocean mesh below the ground. That screenshot, though it used to draw incorrect conclusions in some sites, did very well its role of direct and simple message.

This morning I got a few shots that perfectly summarized what I wanted to explain about the tessellation. With them I don't need words. Are game screenshots. Pure game, are not from editor.




Intel Xeon 3540 + DFI UT X58 + 6 GB 1600 Mhz + 480GTX without oc (only one gpu for test)











NOTA: En el momento de hacer las imágenes he visto la caída de rendimiento al poner los shaders en extremo (necesarios para activar el parallax mapping), así que después de hacerlas he estado toqueteando un poco y he conseguido activar el parallax sin casi perder rendimiento.

-------------

NOTE: At the time of making screenshots I saw the performance drop with extreme shaders (needed to enable parallax mapping), so then I've been tweaking with them a bit and I managed to activate parallax mapping almost no performance loss.

53 comments:

  1. The big performance drop was with AMD cards. The game was VERY nvidia biased. AMD users get on average 30% drop in performance.

    ReplyDelete
  2. GalaxyX, how you calculated that 30%?

    ReplyDelete
  3. For make fair comparison would have to take game screenshots on Very High with tesselation enabled.

    However, if AMD cards suffer more than necessary with tessellation, is not Crytek's fault, is it?

    ReplyDelete
  4. This may sound like a noob question, but will this changes affect user created single player and multi player maps?

    Textures look great by the way

    ReplyDelete
  5. @John, this post is about tesselation. Screenshots are from vanilla game without mods.

    ReplyDelete
  6. @Maldo, yes i know but will the tesselation only affect the main campaign or other maps as well

    ReplyDelete
  7. I'm talking about game tesselation. Without mods. Actual tesselation in actual game. I don't understand your question.

    If you are talking about MaLDoHD 3.0 mod, then, I'm working on single player campaign levels. So, I've edited materials used in those levels. It's possible create custom maps using those materials and textures.

    ReplyDelete
  8. Yes that answers my question....

    ReplyDelete
  9. @MaLDo, I think it's more Cryteks fault. AMD cards do better in DX11 Benchmarks than Nvidia does. 3D mark 11 AMD cards do better in, Unigen 2.5 AMD does better in, heck even Metro 2033 AMD cards do better in and that is also an Nvidia game. So this is a Crytek issue. 30% was a rough estimate, but going from 80+ FPS to 60FPS and in some instances to 12 FPS.

    ReplyDelete
  10. @GalaxyX, I repeat again, How you've tested the performance of tessellation in AMD cars? You could not test it because putting the game on ultra activate many other things apart from the tessellation. Look back at the screenshots here because you are not understanding the issue.

    ReplyDelete
  11. Lol ?

    ''AMD Cards do better in DX11 Benchmarks than Nvidia does.''

    Where did you take this info ?
    ALL AMD cards are better than Nvidia's in DX11 ?

    LOL, just lemme laugh out loud ! AHAHAHAHAH XD

    ReplyDelete
  12. Another Troll here too. AHAH

    ReplyDelete
  13. On the contrary, I think it's the DX11 architecture, especially tessellation implementation which are better in Nvidia Cards. In every DX11 bench, AMD cards (appart hd6990) are beaten by Nvidia when tessellation is enabled.
    I think it's not Crytek fault.

    http://www.geeks3d.com/20100527/test-opengl-4-0-and-direct3d-11-tessellation-gtx-480-vs-gtx-470-vs-hd-5870-vs-hd-5770/

    http://www.guru3d.com/article/radeon-hd-6990-review/19

    http://www.geeks3d.com/20100817/test-lost-planet-2-dx11-tessellation-benchmark-geforce-gtx-400-vs-radeon-hd-5000/

    http://www.anandtech.com/show/4061/amds-radeon-hd-6970-radeon-hd-6950/23 (The second test is better for radeons because it's OpenCL, not Direct Compute).

    etc...

    AMD users can optimize tessellation by setting tessellation samples from 64 to 32 ou 16 in AMD Control Panel. So it's not worth complaining anymore I think.

    ReplyDelete
  14. @ GalaxyX: we are waiting for your reply........ However, I have no solid foundation arguments, many know that Nvidia will work better under DX11.
    Please do not mess this excellent issue with ridiculous fanboyismos.

    ReplyDelete
  15. LOL Fanboyism LOL. My main rig I play on Nvidia based. 3GTX 580s. The reason i brought it up is for my other rig which contains a 6990. And yes the 6990 beats the 590 in almost every benchmark on the market, look at the results yourself.

    ReplyDelete
  16. BTW I was reffering to the 6xxx series for the twats who didn't get it the first time.

    ReplyDelete
  17. @Maldo I tested it by having everything on Ultra then enable then disable Tessellation.

    ReplyDelete
  18. Your game has secret options then. Mine has not tesselation option by default.

    Then, you are saying that all in ultra without tesselation 80 fps but all in ultra with tesselation 12-60 fps...

    Secret options and inconsistent performance. XD

    ReplyDelete
  19. Ops, and with 3x580 ... Seriously, no lies. I have a lot better performance with 2x480.

    ReplyDelete
  20. What? I mentioned nothing about the performance with my 3GTX 580s.

    ReplyDelete
  21. My 3 580s DESTROYS my 6990, and I am happy with it, but I rather not neglect my 6990 rig as i spent a lot of time on that one as well. And what are you talking about secret options? Just go to ultra and enable DX11, go to ATi CCC and turn tessellation all the way up and all the way down. How is this complicated?

    ReplyDelete
  22. Maldo con todo el respeto y admiración por tu trabajo. No se por que defendés tanto a crytek o nvidia.

    Hay 2 hechos que no son mitos. El primero es la performance de las amd inferior a nvidia , nvidia pago 2 millones de dolares a crytek para que hagan el juego funcionar bien con una gtx 580,eso es un hecho no una fantasia y las pruebas abundan por toda la web.

    Lo segundo es que no es mito tampoco el mal uso del tessellation, pero tenes razón con el POM, y yo mismo lo testie eso y efectivamente se reduce el rendimiento drasticamente con el pom, el tesse y los reflejos nuevos. Pero cada uno de esos "efectos" perjudica el juego en zonas distintas. Y el mas impactante de todos es el Tesse en ciertas areas, justamente no en todas las areas "sobretesseladas" pero si en algunas clásicas como rocas y escombros, también en algunos muros. El impacto es relativamente igual en nvidia y amd, pero en amd es mas grande por el tesse , ahí están unos 10 FPS de diferencia fácil o mas, pero es en determinadas areas no en todas.

    No podes negar estas cosas por que están documentadas, podes verlas desde tu punto de vista , y si bien es exagerado el problema o mito del tessellation, tampoco es un mito. Vos tenes una placa nvidia muy potente, proba una amd y vas a ver.

    Sobre de quien es la culpa, te digo que es de nvidia por sobornar y de crytek por aceptar , ya paso con microsoft y el crysis 1 , con esos efectos dx10 falsos que funcionaban en dx9 perfectamente.

    Fijate que en las opciones de object detail esta el pom y el tesse, y el pom no tiene que ver para nada con el detalle mas que de las texturas , ponen todo junto en lugar de dividido.

    Admiro tu labor y te respeto, pero todos sabemos que las placas amd no son menos que las ati, y que hay cosas ridículas en el juego como el tessellation, sacando eso es mas o menos igual en las 2, un poco mejor nvidia , pero para mi sigue siendo un tema de nvidia y crytek, el metro 2033 es mas "pesado" gráficamente que el crysis 2 y funciona un poco mejor con las AMD.

    En conclusión, me parece interesante la observación sobre el impacto del pom en el rendimiento, pero no coincido en que sea un mito lo del tesse y si creo que es culpa de crytek.

    Si no fuera crytek un desastre , por que tenemos que esperar que vos hagas este parche para considerar el juego digno del hardware actual?

    Otra cosa es que reducir el tessellation factor desde el panel de ati mejora el rendimiento , pero los objetos tessellados se distorsionan drasticamente afectando la visual demasiado.

    Yo pienso que podrías haber tirado las cartas sobre la mesa Maldo, pero no fue buena idea tomar partido por nvida o crytek en contra de AMD.

    Al margen de todo esto te dejo mi saludo, admiración y agradecimiento por le trabajo que realizas para mejorar el juego.

    ReplyDelete
  23. Las nvidias tienen una mejora structura para DX11, sobre todo tessellation. Es todo.

    Metro 2033 utiliza DX11 pero sobre todo shaders (and PhysX) mientras que Crysis 2 utiliza mas Tesselation.

    P.S : No me recuerda mucho el Español de escuela.

    ReplyDelete
  24. It is a mod to make the game a lot prettier. So it's quite "normal" than it's costs cpu and gpu power.

    AMD must improve HD6xxx architecture to handle better DX11 effects. For the moment they need to create absurd cards like HD6990 to keep the level.

    DX11 doesn't have specific Nvidia or AMD commands, on the contrary to OpenGL. Maybe Nvidia helped Crytek developers by giving them hardware or showing them code samples. But as DX11 is generic, it must run the same way on cards of the same level. If it's the opposite, there is a hack by Nvidia, or an error from AMD.

    By the way, every benchmark and analysis of the architecture showed that AMD definitely made a "mistake" on its cards designs.

    I ran Crysis 2 with ultra settings, HD textures and DX11 in 1680x1050 at 30fps with an GTX460 2gb @ 800/1850, 4gb DDR3/PC10600 and a Core 2 Quad q9650@3.4ghz.

    Same thing with Metro 2033. 30fps with Full Details on DX11 and 1680x1050.

    ReplyDelete
  25. Metro 2033 with PhysX High of course.

    ReplyDelete
  26. @KuroTenshi You are correct, Tessellation is handled better on Nvidia, their is no doubt about that. But their is no need for the observed tessellation and miss use of it in Crysis 2. Why does their have to be 20,000+ pollygons on flat surfaces, and why is there a low polly count on round objects? This clearly shows Crytek has no idea what they are doing. If they made the game right a 6990 should have ZERO issue running it. I can run Unigen at the highest settings on my 6990 at 1920x1080 and still average 40+ FPS. And in Crysis 2 I average the same in most cases. How is a game using more resources than a bench tool like Unigen? Their is more noticeable tessellation in Unigen than their is in Crysis 2.

    ReplyDelete
  27. maldo.. primero ke todo.. felicitarte por tu trabajo... en cuanto a lo posterior el lo ke tu comentas de ke has encontrado mejorar para habilitar la tesselacion y el pom sin perder rendimiento.. me gustaria que vieras una escena en cuestion..tengo un buen ekipo.. pero cuando esta comienza.. in mediatamente cae el rendimiento.. ya casi poniendo de patas arriba .. baja a menos de 10 fps.. el nivel es derrumbe emprasarial.. la teselacion si la trabajas al maximo con una radeon 6950 o 6970..aun no logra nada sigue entre los 10-12 fps.. aunke es en las partes con mas zonas rocosas..vale la penas que puedas mirar con tu magia para mejorar el rendimiento .. gracias por leer la inquietud si puedes responderme al youtube.. soy KDashNX-Colombia

    ReplyDelete
  28. Pon por favor unas capturas de la escena de "derrumbe empresarial" donde tienes esas caídas de rendimiento. Gracias.

    ReplyDelete
  29. I know I was one of the people to comment and send an email regarding the tessellation issues. Albeit the performance drop is very little, that doesn't mean they need to be so highly tessellated. You should still look into seeing if it's possible to lower it, because we don't NEED it that high. There's no reason to waste GPU usage on something that's unnecessary.

    ReplyDelete
  30. 10 - 15 FPS acá en muchas zonas , en las zonas donde están este tipo de caídas no hay parallax.

    Igual creo que es un tema terminado, Maldo hace un laburo impresionante restaurando un juego que debió reparar crytek y no lo hizo, que encima solucione el rendimiento de las placas amd es demasiado.

    ReplyDelete
  31. Peeps, MalDo has clearly shown that highly tessellated objects don't have a significant performance impact. If you are having trouble with performance on amd(nearly wrote ati :3) cards lower your tessellation multiplier in CCC. Remember that tessellation cannot be compared with normal dense geometry. Although there are thousands of "pointlessly" used polygons, they are a byproduct of an efficient 'tessellating' algorithm used on a per-object scale. ie: To tessellate the barricade to the detail of the clips/handles on top the whole barricade has a tessellation algorithm effect applied to it to achieve that. When people see lots of triangles they seem to immediately thing "massive performance hit" even though the particle shadows are probably the thing chewing your fps.

    ReplyDelete
  32. Another interesting test is to go into the editor and mess around with wire frame and turning tessellation on and off. The amount of tessellated objects is quite intense, especially in the later levels. My performance hit was quite comparable to maldo's (using gtx 460 sli) which makes me think that although Crytek maybe careless at times with their placement of tessellation, their optimisation of it must be immense (they just had to balls up the textures).

    ReplyDelete
  33. @JayJapanB, thank you for providing some common sense.

    Anyway, as I can't test mod in AMD gpus, I'm working blindly in specific reduced tesselation for those who want to use it.

    ReplyDelete
  34. not trying to rush you but how long till this mod is completed?

    ReplyDelete
  35. please release today if possible

    ReplyDelete
  36. I still havent played this game yet. I waited for the dx11 and now i am waiting for your textures. I have 2x580 i dont care about performance. As the other child said. Release this thing now!!!

    ReplyDelete
  37. "Lol ?

    ''AMD Cards do better in DX11 Benchmarks than Nvidia does.''

    Where did you take this info ?
    ALL AMD cards are better than Nvidia's in DX11 ?

    LOL, just lemme laugh out loud ! AHAHAHAHAH XD"

    I'll laugh with you troll or not..

    AMD cards always do poorly in dx11 benchmarks in unigine heaven for example the 6970 can be 25% slower than the gtx 580 on extreme.

    ReplyDelete
  38. @ Anonymous, Hey stupid you clearly can't read, please look at the later posts.

    Also lowering the Tessellation in CCC anything lower the x64 makes everything look like crap.

    ReplyDelete
  39. BTW I did not say "ALL," either, which means your whole point is irrelevant.

    ReplyDelete
  40. This is getting bad, Maldo , do not talk of "common sense" your opinion is respectable ,but is about opinions and your "test" dont prove nothing, you are againts many test from people that work doing that like technology webs , and all them prove the heavy tessellation in no sense objects and the AMD worst performance that either have common sense.

    Your "test" is like any of us running and changing options in our machines , the big difference is you have a nvidia card and others AMD. The only i agree with you is the performance loss in Parallax occlusion mapping.

    Lets talk like people please , dont attack each others, and respect what others think like i do.

    I also agree with Galaxy, all the world know that CCC cant solve the performance problem coz it make tessellated objects look like crap in some cases like Wall bricks.

    Never a AMD card show slower performance with tessellation before crysis 2 dx11 patch, but if its is worst than nvidia.... that dont make crytek less responsible for making a bad patch or bad PC port, nvidia cards dont run so well either.

    Again, calm down , this is a issue from the game , Maldo do so much for all of us making this patch , lets wait a solution from crytek or AMD for this problem, but please Maldo, dont aim AMD users or those who are unsatisfied with crytek, we are indebted with you.

    ReplyDelete
  41. Maldo disculpa si dije algo que moleste, me siento mal por pensar distinto que vos ya que hiciste un parche muy bueno que me hará jugar otra vez el juego como me gusta a mi.

    Lo que hiciste hasta ahora ya es demasiado, como dije antes si mejoraras el rendimiento ya seria demasiado lo tuyo.

    Un saludo.

    ReplyDelete
  42. less arguing and more releasing.... hurry up man. and for the fools arguing there are 1000s of review sites out there that compare amd and nvidia. so why is there any arguing about old news.

    ReplyDelete
  43. ok maldo.. estoy subiendo el video para ke lo veas en youtube el nombre es :Crysis2_DX11 rendimiento en Teselación - Derrumbe Empresarial .En unas hora esta listo


    KDashNX

    ReplyDelete
  44. Crysis2 crypt walkthrough DX11/ultra/64xTesselation/16xAF/custom.cfg

    using a powercolor 6970 pcs+
    a 1090T and 8 gb 1333 ram

    http://www.youtube.com/watch?v=x2xWxRLSuSw

    ReplyDelete
  45. Why is it immediately Cryteks fault? If amd cards aren't performing as efficiently as their nvidia equals I'd say it's likely up to amd to release driver updates. Either that or after MaLDo releases it a person running an amd rig can go into the level files and edit the tessellation from there and make an amd release for the mod.

    ReplyDelete
  46. ok ya lo subi..KDashNX

    ReplyDelete
  47. I can't find any video with that description in youtube.

    ReplyDelete
  48. @JayJapanB, The reason it is Crytek's fault is because AMD does NOT experience the same loss in other games or benchmarks for that matter. Why is it Unigen can run 40+FPS on the highest settings 1080p and Crysis 2 also runs at 40+ FPS average on AMD 6990? In Unigen you CLEARLY more tessellation than Crysis 2. Also I am tending to believe that Crytek was not being friendly with AMD, because as stated before, Other games do NOT experience this with AMD.

    ReplyDelete
  49. ok maldo.. aki te dejo el viedeo.. donde te digo ke exageran la tesela cion.. gracias

    link:
    http://www.youtube.com/watch?v=Nl-kX0jd5wc


    KDashNX - Colombia

    ReplyDelete
  50. Firs thank you for your work, I appreciate much what you did for this game.
    But do not think you chose the best example to show the impact of tesselation in this game. The post above illustrate more clearly what tesselation does to AMD cards.
    On the same level with my HD 6970 i have 25-28 FPS in that tunnel before exiting on wide area, that with "AMD Optimized" checked on CCC.
    When I decrease the value to 8 the FPS jump to 36-38, when I decrease the value to 4 the FPS jump to 42-45.
    So I conclude that the tesselation is responsible for the drop of FPS.
    Am I wrong?
    P.S. Corporate Colapse is the heaviest to my gpu with tesselation on.

    ReplyDelete
  51. @Alex, I've said in another post, I don't want to show how tesselation affects performance but can be other effects that can.have bigger impact in some situations. For example, if you can add 20 fps in your computer disabling some ultra effects, you can play at 20+25 = 45 fps with normal tesselation. Obviuosly this is an example because is possible that your card has some tesselation dedicated units that are bottlenecking and no solution is possible. I can't test in amd gpus but I have very good results with my 480 and recomended settings in MaLDoHD 3.0

    ReplyDelete
  52. Yes that i`m gonna do when MaLDoHD 3.0 will be released.
    With MaLDoHD 2.0 you did such a good job.
    Thanks again

    ReplyDelete