Előrelépésnek tűnik a Firaxis újfajta tesszellálása

Február elején számoltunk be arról, hogy népszerű stratégiai játékairól ismert Firaxis egy újfajta tesszelláláson dolgozik, mivel a hagyományos opcióval egyszerűen nem elégedettek. Pedig utóbbit használták is a Civilization 5 című játékban, de az eredménnyel igazából sosem voltak elégedettek. Az előbbi alkotás alapját szolgáló LORE videojáték-motor továbbra is a piac egyik legkomplexebb terepleképző rendszerét használja, aminek elkészítésében vezető szerepet vállalat John Kloetzli. Ezzel külső szemlélő számára nem is volt igazán probléma, hiszen akár szépnek is lehetett mondani, de a Firaxis kritikusan áll a rendszerhez, és úgy gondolják, hogy van még mit csiszolni rajta, ami persze örömteli nézet, hiszen ez a fajta gondolkodásmód viszi előre az ipart.

Hirdetés

A terep persze mindig nagy kihívás, hiszen a minőségnek a teljesítményre vonatkozóan ára van. Érthető módon a gyenge felbontás gyors, de nem szép, míg a nyers erőből kivitelezett jó felbontású tartalom már nagyon jó, de kivégzi a hardvereket. A kettő közötti átmenetre a tesszelláció egy értékes alternatíva, mivel a nyers tartalom így lehet gyenge felbontású, amit tesszellálással fel lehet javítani. A terepgeneráláshoz persze mindenképp jó minőségű magasságtérkép kell, de ezt már be lehet vállalni. A tesszellálás azonban csak egyszerűen bevethető, de a fixfunkciós jellege miatt nehéz vele bánni.

Az előre tesszellált tartalom helyből kiesik, hiszen nagyméretű lesz, illetve a terep nem minden pontján szükséges az extrém minőség. A normál tesszellálás egy életképes alternatíva, különösen adaptív módban, ami a stratégiai játékoknál a kamera korlátozott mozgása miatt jól kezelhető. Ebből a szempontból egy olyan hull shaderre van szükség, ami csak a szükséges területeken tesszellál, hiszen a sík, vagy közel sík terepet nem lenne értelme rengeteg apró háromszöggel felturbózni. Egy speciális adatalapú hull shaderrel a Civilization 5 meglehetősen jól dolgozott, hiszen a minősége nagyon jó volt, viszont voltak általános problémák, mivel a megfelelő tesszellációs szintet számolni és tárolni kellett, illetve még így is sok apró háromszög keletkezett. Ez a mai hardvereken nem jó, hiszen mindegyik architektúra négyes pixelblokkokon dolgozik, így csak akkor érhető el magas raszterizálási hatékonyság, ha a háromszögek nem kisebbek 16 pixelnél. Ugyanakkor a fixfunkciós módszer ennél jobb lehetőségeket nem rejt, így be kellett érni ennyivel.

Firaxis hardveres és szoftveres tesszelálás. A hegygerinceken látható a hárömszögek hatékonyabb felhasználása. Firaxis hardveres és szoftveres tesszelálás. A hegygerinceken látható a hárömszögek hatékonyabb felhasználása.
Firaxis hardveres és szoftveres tesszelálás. A hegygerinceken látható a hárömszögek hatékonyabb felhasználása. [+]

A Firaxis azonban egy új megoldást dolgozott ki a problémára, mely lényegében szoftverből szimulál egy tesszellátort. Utóbbi úgy működhet, ahogy a fejlesztő szeretné, így maximálisan az adott szituációra lehet szabni. Ezzel megmarad a minőség, és a feleslegesen kicsi háromszögeket sem kell elviselni, ami nagyságrendekkel növeli raszterizálás hatékonyságát. A vállalat egy komplett compute shaderen alapuló rendszert épített fel a Microsoft egy korábbi, DirectX 10-hez készült példaprogramjára alapozva. Az elsődleges cél a maximális kontroll volt, vagyis a hagyományos tesszellálás korlátjainak teljes eliminálása.

Az eredmény nagyon jónak tűnik, mivel nemcsak jobb minőségű a szoftveres tesszellálás, de gyorsabb is a hagyományos opciónál. Ugyan a tesszellálással töltött feldolgozás önmagában több időt vesz el, de a raszterizálás hatékonysága már jóval jobb a teljes kontroll miatt, ami összességében sebességelőnyt hoz. A Firaxis mérése szerint 24% körüli extra tempó nyerhető a szoftveres opcióval, de ez a hardvertől is függ. A koncepció tehát a végeredmény szempontjából gyakorlatilag hibátlan, viszont vannak ennek is negatív oldalai, mivel maga a rendszer komplexebb, így több időt igényel a megvalósítása a fejlesztői oldalon.

A Firaxis szerint potenciális optimalizálás lehet az új generációs API-bak érkező asszinkron compute funkció, amivel a tesszellálási műveletek átlapolhatók, így az elérhető gyorsulás jelentősen javulhat. Ez lehet az egyik oka, ami miatt a vállalat a szoftveres tesszellálást tekinti a jövőnek, mivel minden tekintetben jobb eredményt ad a hagyományos módszernél, még ha extra munkával is jár.

Azóta történt

Előzmények

Hirdetés