Strana 1 z 2
- 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?
|