Mesterségesen kreált a Crysis 2 óriási gépigénye

Rejtett geometriák

Sokan emlékezhetnek még a régebben szebb napokat is megélt The Way It's Meant To Be Played partnerprogramra, mellyel az NVIDIA a fejlesztők munkáját segítette a PC-s játékok elkészítésében, illetve optimalizálásában. Sajnos mára a partnerprogram alaposan vesztett értékéből, amit az is jelez, hogy a zöldek csupán öt darab DirectX 11-es játékot kínáltak eddig a piacnak, miközben a konkurens AMD Gaming Evolved berkein belül már 13 játék készült, és ősszel további kettő fog megjelenni. Túlzás lenne azt feltételezni, hogy az NVIDIA pénzhiányban szenved, így csak kevesebb projektet tudnak finanszírozni, de valami egyértelműen nem úgy működik, mint régen.

Biztos sokan tudják, hogy a Crysis 2 DirectX 11-es módja a The Way It's Meant To Be Played partnerprogramon belül készült, és a Metro 2033-hoz hasonlóan (szintén a The Way It's Meant To Be Played cím) elsősorban az óriási gépigényével hívja fel magára a figyelmet. Damien Triolet, a Hardware.fr szakértője elemezte a Crysis 2 motorjának működését, azaz utánajárt, hogy miért is kell a program maximális grafikán történő futtatásához minimum egy GeForce GTX 570-es VGA. A teljes cikk az alábbi oldalon olvasható végig. Sajnos franciául van, de bizonyos, hogy később megjelenik az angol fordítás is a magazinhoz tartozó BeHardware oldalon.

Hirdetés

A cikkben szereplő teszteredményekből kitűnik, hogy a GeForce-ok és a Radeonok erősorrendje nem követi a többi játékban megszokott normákat. A Radeonok nagyjából 15-20%-kal teljesítenek rosszabbul a GeForce-okhoz képest. Az AMD-t korábban már megkérdeztük, hogy ennek mi az oka. A vállalat azt válaszolta, hogy a rajzolási parancsok többszálú feldolgozását kell optimalizálni, mivel az aktuális Catalyst meghajtók ezt csak egy processzorszálon képesek abszolválni, emellett rengeteg rejtett geometria van a játékban, amit valamilyen okból kiszámoltat a DirectX 11-es motor. Utóbbi felfedezés első hallásra borzalmasan viccesen hangzik, hiszen mi értelme kiszámolni valamit, ha annak semmi látszata nincs a végső képen. Ez az erőforrás nagyfokú pazarlása lenne, ami egy olyan rutinos stúdiótól, mint a Crytek nem megszokott. Éppen ezért nagyon szkeptikusak voltunk ezzel kapcsolatban, de Damien Triolet bizonyítékot talált minderre.

A fentebb linkelt tesztben látható, hogy a Crysis 2 DirectX 11-es módja állandóan kiszámolja a város alatti virtuális óceán geometriáját, holott az sokszor nem is látszik. Az API-ban létezik erre kivágó algoritmus, ami a biztosan nem látszódó felületeket eltünteti még a vertex shader fázis előtt, de ez a DirectX 11-es módba valamiért nem került bele. Érdekes azonban, hogy a rendszer még a raszterlizálás előtt eltörli a geometriát, így a szintén nem kevés erőforrásigénnyel rendelkező pixel shaderek már nem futnak le rajta. A tesszellált vízfelületet tehát szimplán a geometry shader fázisig él, és nagymértékben terheli a GPU-k primitív futószalagját hozzávetőleg 10-30%-os (az adott GPU képességeitől függően) lassulást eredményezve a jelenet primitív számításának idejében. Ennek természetesen nem látjuk értelmét és szükség sincs rá, mivel a végső képen semmilyen formában nem jelenik meg ez a számítás, de a DirectX 11-es módban valamiért megtörténik.


A Crysis 2 rejtett geometriája és a tényleges jelenet (forrás: Hardware.fr) [+]

A tesszellálás is sántít...

Damien Triolet, szintén elemezte a ténylegesen látható tesszellált felületeket, és arra a következtetésre jutott, hogy a Crytek úgymond túltesszellálta ezeket. A CryEngine 3 a maximális 64-szeres tesszellálást használja, és ez a paraméter a játékon belül felülbírálhatatlan, sőt a tesszelláció külön ki sem kapcsolható, amit sokan kifogásolnak. Az alábbi képeken látható egy útpadka, ami Extreme beállítás mellett nincs tesszellálva, míg Ultra opció esetén az eredeti objektum háromszögei 64-szer lesznek felbontva kisebbekre.


Az útpadka tesszellálás nélkül és tesszellálva (forrás: Hardware.fr) [+]

A lentebb látható geometriai vázon rögtön látszik, hogy ez mennyire sok, apró háromszöget jelent, amelyek jóval kisebbek az általánosan elfogadott 16 pixelnél. Ezzel a kártyák raszterizálása nem lesz hatékony a felületen, ugyanis rengeteg felesleges munka lesz végrehajtva. Számos keletkező háromszög még egy pixelnél is kisebb, ami azt jelenti, hogy a négyes pixeltömbökön dolgozó rasztermotor a számítások 95%-át is eldobhatja, ami az erőforrás nagyfokú pazarlása ismét. Mindezt úgy, hogy a nem tesszellált útpadka észrevehetetlen minőségi előrelépést jelent a tesszellálthoz viszonyítva. Itt fontos megjegyezni, hogy a talajt nem érdemes figyelembe venni, ugyanis azon Parallax Occlusion Mapping van alkalmazva, ami tesszelláció nélkül is végbemehetne, amennyiben a Crytek nem kötötte volna ezt a két opciót egyetlen beállításhoz. Ennek megfelelően dönteni kell, hogy mindkettő, vagy egyik sem lesz aktiválva, ami szintén nem szerencsés, a 300 dollárnál olcsóbb VGA-val rendelkező felhasználók számára.


Az útpadka geometriája (forrás: Hardware.fr) [+]

A Hardware.fr cikke a rajzolási parancsokat is ellenőrizte, ami azért jó, mert az AMD ezen szeretne javítani a driverben. Az előbbi jelentetett vizsgálva sikerült felfedezni, hogy a tesszellált geometriák és a teljes geometriai váz kirajzolását kétszer végzi el a motor, ami természetesen nagyon terheli a grafikus kártyák primitív feldolgozó képességét, de nem elhanyagolható módon a rajzolási parancsok száma is megnő, vagyis a processzornak is több munkát kell végeznie.

A Crysis 2 DirectX 11-es módja tehát sok értelmetlen számítást tartalmaz mesterségesen kreálva nagy gépigényt. Ugyanolyan grafikai minőség mellett a sebesség minden kártyán 30-50%-kal (az adott GPU képességeitől függően) nagyobb is lehetne, ha eltűnnének a láthatatlan, de mégis számításigényes geometriák, és a tesszellálás okosan lenne alkalmazva, ott ahol valóban látható eredményt hoz. Sok fejlesztő jelezte már korábban a tesszellálás kapcsán, hogy óvatosan kell bánni vele, mert nagyon könnyen el lehet érni azt, hogy a játék teljes pompájában csak a felsőkategóriás kártyákon fusson, ami nem jó. Főleg annak fényében nem, hogy a JPR legutóbbi felmérése szerint a teljes VGA-piacot elemezve az emberek alig 2%-a vásárol 300 dollárnál drágább kártyát, és a teljes GPU-piac 80%-a 100 dollárnál olcsóbb dedikált, de főleg integrált megoldásokat keresi. Éppen ezért semmi értelmét nem látjuk annak, amit a Crytek tett. A DirectX 11-es mód óriási gépigényét meglátva csak még többen fognak, az exkluzív és nem mellesleg minőségi címekben amúgy is bővelkedő konzolok felé fordulni, ami természetesen az úgynevezett hardcore PC-s játékpiacnak nagyon rossz.

Bár konkrét bizonyíték nincs rá, valószínű, hogy az NVIDIA igényelte a magas gépigényt, hiszen számukra a GPU-piac 80%-a úgyis elérhetetlen, így a maradék részre koncentrálnak. Az NVIDIA ilyen irányú elképzelése üzletileg érthető lehet, így teljesen normális, hogy a The Way It's Meant To Be Played partnerprogramon belül manapság számít a magas gépigény. Ebben a színjátékban a Crytek számára nincs értelme a saját PC-s vásárlóbázisuk és rajongótáboruk érdekeit a háttérbe szorítani, hacsak némi pénzmag nem érkezik cserébe. Abban semmi kétség, hogy a felhasználók érdeke a jó optimalizálás, és a gépigény alacsony szinten tartása, mindenféle mesterséges trükközések nélkül.

Abu85

Előzmények

Hirdetés