- Crysis2 to přehání s „neviditelnou“ Tessellací a zvýhodňuje NVIDIA grafiky. Záměr nebo nedopatření?
Server Techreport se důkladně pošťoural v technologiích, které Crytek použil u Crysis 2 DX11 a vydal se zjistit, proč je ta hra tak náročná a proč takovým způsobem sedí grafickým kartám NVIDIA. Protože se objevila celá řada podezření, tak hlavně zkoumal, zda je moudré a objektivní jej zařazovat do testů grafických karet a dělat na jeho základě nějaké závěry kolem výběru grafické karty. A na co přišel?
- Tessellace u Crysis 2 – všudypřítomná = GPU dře zbytečně?
Jak víte, Crysis2 dostal DX11 technologie teprve nedávno, ale stačí to s přehledem na nejlépe vypadající a technologicky nejpokročilejší hru, které se kdy objevila. Pokud máte dostatečně výkonný PC, můžete si užít skutečně extrémně detailně zpracovaných modelů, za pomocí tessellace, kterou vývojáři skutečně nešetřili, i když ji nakonec použili trochu jinak, než by asi bylo vhodné a optimální.
(DX9 bez tessellace, jednoduchá polygonová mapa objektu)
Při bližším zkoumání se objevily otázky, zda to Crytek s tím užitím Tessellace trochu nepřehnal, protože zaměstnává GPU vykreslováním detailních map objektů, které to úplně nutně nepotřebují a hlavně, které nejsou vůbec vidět! Poněkud nadbytečné se to například jeví na všudypřítomných betonových zátarasech.
(DX11 s Tessellací - složitá síť a mnohem realističtější objekt)
I když musíme uznat, že ten Tessellační model je dělá vážně jako „živé“ :). Otázkou ale je, zda to zrovna tento pasivní nijak tvarově zajímavý prvek na scéně potřebuje a musí tedy zatěžovat GPU tolik.
(Samotná síť Tesselovaného objektu na scéně)
Dalším prvkem, který využívá možností detailní sítě modelu polygonů (tessellace) je voda. Jenže kupodivu se neviditelně táhne ta tesselační síť vytěžující GPU celou scénou i na souši a vzduchem! Zbytečně tak zatěžuje GPU, které se zatěžuje počítáním něčeho, co není vidět a je na scéně zbytečné! Toto je skutečně hodně nehospodárné a zbytečné nakládání s prostředky (výkonovými možnostmi GPU), které se určitě daly využít jinak – či je to záměr?
(Kliknutím zvětšíte - tessellační síť přez celou scénu. Proč?!)
Samozřejmě ne všechny objekty na scéně jsou tessellované, ale většina ano a výsledek je skutečně fantastický, i když bohužel Tessellované a netessellované prvky vedle sebe působí někdy trochu zvláštně.
V žádné hře zatím v takovém rozsahu tessellace použita nebyla, bohužel není úplně na všem a na mnoha věcech, kde ji vývojáři použili, ji používají velmi neefektivním způsobem, kdy GPU vykresluje složitou síť polygonů, i když není vidět a tedy není nikomu k užitku! Náročnost na výpočetní výkon je tedy zbytečně přehnaná. Nebo to má nějaký účel? Otázka: „Proč to tak je?“, je tedy nasnadě.
(Tak podrobná tessellace betonové zdi? Pěkné, ale nezasloužily by si to jiné objekty spíše?)
První věcí je, že Crytek prostě neměl čas splnit slib o technologické pokročilosti hry s jejím vydáním. EA na vydání tlačilo a soustředilo se na výrazně slabší konzole. Po vydání hry byla PC komunita přirozeně roztrpčena a dodělávání DX11 patche se protahovalo, protože EA se jako vydavatel soustředí hlavně na samotné vydání hry, kam směřuje většinu investic do marketingu. DX11 tak bylo podle jedné verze prostě doděláno tak nějak lážo-plážo a už se s ním pro Crysis2 nechtěl nikdo moc patlat. Takže optimalizace nasazení Tessellace a tak dále, to šlo prostě mimo.
Druhou věcí je, že na hře spolupracovala NVIDIA, která má ve zvyku jisté věci kolem náročnosti Tessellace v některých hrách, na kterých spolupracuje, přehánět tak, aby vynikly určité aspekty jejích grafik. Ostatně vývoj hry a vlastní vývojáře nasazuje proto, aby prodala vlastní produkty, takže je logické, že potřebuje, aby tam ty její vynikly – otázkou je, co je ještě optimalizace a co vyloženě podvod s cílem poškodit konkurenci. Samozřejmě NVIDIA dobře ví, že upravovat kód aplikace, aby snižoval výkon konkrétních čipů, se nesmí. Takže se náhodou v „jejích“ hrách objevují prvky v poněkud náročnější méně optimalizované podobě, než by nutně musely být. Věc se má tak, že NVIDIA dává v současné architektuře větší důraz na geometrický výkon a zpracování, než současné Radeony, jenže tím trpí provozní efektivita a hlavně tak velký důraz na geometrický výkon dnes není zapotřebí.
Jak víme, NVIDIA díky tomu vyniká ve vysokém stupni tessellaci, ale jak už jsme říkali při startu DX11, bude trvat ještě mnoho let, než se takový stupeň tessellace začne používat a až se tak stane, tak stejně bude tak náročný, že současná generace grafik na něj nebude mít dost výkonu a hlavně nebude mít výkon na to všechno okolo, takže současné grafiky s vyšším geometrickým výkonem nemají žádnou výhodu, protože prostě pro budoucí aplikace a věci v nich, nebude jejich výkon stačit. V Crysis2 je ale uměle vyhnána náročnost Tessellace nad úroveň potřebnosti a obecného používání u současné generace her, ale stále dost pod úrovní toho, jak ji budou používat budoucí hry. U Crysis 2 se značná část scény tesselluje bez užitku díky přidané síti vody, která není často vůbec na scéně vidět, a část spotřebovávaného výkonu GPU je spotřebovávána zbytečně a tak benchmark ukazující, že ten výkon potřebujeme a jakou grafiku si máme koupit, je tudíž minimálně zavádějící a to určitě není v pořádku. Něco podobného jsme viděli třeba u HAWX2, kde byly věci udělané podobně uměle, aby určitý aspekt výkonu architektury grafik NVIDIA vynikl, i když ve skutečnosti tento aspekt nehraje tak důležitou roli, natož aby byl tak potřebný, jak se to snaží benchmark takto „optimalizované“ hry ukazovat.
Takže má smysl Crysis 2 používat v objektivním testu?
- Crysis 2 je jako testovací benchmark zavádějící?
Bohužel, díky této (ne)optimalizaci, ať už je chyba v tom, že Crytek neoptimalizoval využití Tessellace jen na viditelné objekty a objekty, které to skutečně potřebují, nebo záměrnému zvýhodnění NVIDIA grafik, je Crysis2 do testů grafik nenasaditelný.
(zbytečná "neviditelná" tessellační síť vody zaměstnávající GPU)
Díky tak masivnímu zvýhodnění i v této hře jinak ne tolik potřebného geometrického výkonu, kdy po zapnutí tessellace, která není ani vidět, spadne výkon u HD 6000 grafik o 31-38%, ale u GF jen o 17-21%, to následně výrazně zkreslí výsledky v případné celé recenze, když na konci zprůměrujete třeba 10 her, kde podobné „optimalizace plýtvání výkonu“ nejsou, a kde je tak situace mezi grafikami obou výrobců jinak hodně vyrovnaná. Je to stejné, jako když jeden má celé kuře, druhý nemá nic, ale v průměru máte oba půlku. Dávejte si tedy velký pozor na recenze, kde se tento test v DX11 verzi s Tessellací vyskytuje, protože závěrečná průměrovaná výkonová srovnání jsou vlastně zavádějící a chybná. Je to stejný případ, jako sporné nasazování hry HAWX2 do recenzí, ke kterému se nakonec odhodlalo jen pár webů, protože tam to zkreslování bylo ještě okatější a zkreslovalo věci velmi podobným způsobem.
Určitě je škoda, že Crysis 2 je podobným způsobem postižena, protože jako benchmark bychom ji velmi rádi používali. Ale v tomto stavu těžko můžeme. Dopady zvýhodnění NVIDIA grafik (ať už jsou záměrné, či nikoliv jen leností vývojářů), lze u AMD grafik do značné míry minimalizovat. Stačí v ovladačích AMD Catalyst nastavit v příslušné záložce úroveň Tessellace faktoru na 16-32. Na kvalitě obrazu hry a modelů to vůbec okem nepoznáte, ale výkon Radeon grafik půjde nahoru. Jenže je otázka, jak moc přesné testování výkonu grafik, za dvojitě zkreslených podmínek, to pak bude. Každopádně je to jistá možnost, jak Crysis 2 do recenzí grafik používat. Nad tím se zamýšlí kromě Techreport serveru i další.
(Tessellace není sice u všeho, často je rozhodně pěkná a přínosem k realismu tvarů, ale proč je tam ta všudypřítomná neviditelná deka zvyšující zátěž pro GPU?)
Optimalizace AMD/NVIDIA grafik pro určitou hru, na které se tyto firmy jako vývojáři či jinak jako partneři podílely, je samozřejmě celkem běžnou věcí, ale všechno má své meze. Tolerovanou rutinou je fakt, že má jedna vyladěny při vydání hry ovladače lépe, než ta druhá, které ke hře nemalě takový přístup. Naštěstí takto okatých a skutečně hodně přehnaných zvýhodňujících „optimalizací“, ktré s vyladěním ovladačů nemají nic společného, je celkem málo, a tak nám zbývá celá řada her, které místo takových můžeme do testů nasazovat. To nic nemění na tom, že u Crysis2 nás tyto výše zjištěné skutečnosti dost mrzí. Vzhledem ke stylu, jakým byl DX11 patch připravován a vydáván pochybuji, že bude situace napravena patchem patche a tessellace by se tak používala jen tam, kde by skutečně byla zapotřebí a viditelná na scéně. Hra by poněkud ztratila na HW náročnosti a síly mezi AMD a NV grafikami by se vyrovnaly, jak tomu je ve všech ostatních moderních DX10-11 hrách … pevně doufám, že se situace dočká ze strany Cryteku nápravy, pokud je to celé jen nedopatření, které ovšem ve výsledku neumožňuje nasazovat Crysis 2 do objektivních testů a recenzí.
Tessellované objekty jsou často rozhodně perfektně provedené a nejrealističtěji vyvedené, co jsme kdy ve hrách vůbec viděli. Ale jsou tak zbytečně udělány i ty, které to zrovna nevyžadují nebo vůbec nejsou vidět, takže hra je ve výsledku náročnější, než jak ve skutečnosti tento rozsah tessellace náročný je a mohli by si ji jinak užít i majitelé slabších grafik. Teď nemůžou. Přínos tessellace je jinak nezpochybnitelný.
- Dobrá zpráva na závěr z jiného soudku:
Crytek vydala volně šiřitelný SDK balík jeho CryEngine3 herního enginu, který byl použit u Crysis2! K dispozici je tedy tento balík nástrojů, který je stažitelný zde (659MB) a pokud pracujete na nekomerční hře, máte možnost svou hru v tomto enginu vytvořit! Můžete si tedy udělat vlastní Crysis! Pokud byste rádi vytvořili hru, kterou chcete prodávat, budete si muset zaplatit za licenci. Crytek každopádně tímto SDK vstupuje do přímé konkurenční pozice vůči Unreal Enginu od Epicu, který podobným způsobem už nějakou dobu k dispozici je.
Originální článek na techreport (en): Crysis 2 tessellation: too much of a good thing?
PS: případné dotazy směřujte na Techreport, DDworld není autorem obrázků ani výše uvedených zjištění. Pouze čerpáme s článku a tápeme jako ostatní, zda je to schválně, či nikoliv, a zda je v této situaci objektivní nasazovat Crysis2 do recenzí a testů grafik ...
AUTOR: Jan "DD" Stach |
---|
Radši dělám věci pomaleji a pořádně, než rychle a špatně. |
|