Hirdetés

Vélemény: eredményezhet jobb textúrákat egy új grafikus API?

A Rebellion a független fejlesztők közül az egyik legismertebb cég, és sokak nagyon kedvelik a munkásságukat, hiszen az egyes játékaik kiadása után is számos ingyenes tartalommal tartják fent az érdeklődést. Ráadásul az említett vállalat még az új technológiai megvalósításokat is megpróbálja az összes független konkurens előtt támogatni, így az Asura nevű videojáték-motor az elsők között támogatja az alacsony szintű hardverelérést biztosító grafikus API-kat. Ez jelenleg csak a Mantle API-ra korlátozódik, de a Rebellion utalt már rá, hogy záros határidőn belül megoldják a DirectX 12 és a Metal API támogatását is. Ennek érdekében a cég programozói, Kevin Floyer-Lea-vel az élen a nyarat csak azzal töltötték, hogy az Asura grafikáért felelős alrendszerét teljesen átírják, aminek köszönhetően az jobban illeszkedik majd az új generációs technológiákhoz.

Azt természetesen már nehéz vitatni, hogy az a jövő, amire az Asura felkészült hamarosan a jelen lesz, tehát előbb-utóbb minden cégnek el kell végeznie azokat a módosításokat, amelyek hatékonyabban működtetik az új generációs grafikus API-kat. A PC-s platformra azonban jellemző, hogy az efféle változásokba a játékosok egy része nem törődik bele, noha sokat nem tehetnek ellene, de hangot adnak az egyedi és negatív nézeteiknek, amelyek nagyrészt félreértésekből születnek. A Rebellion új fejlesztéseit nemrég elkezdték támadni. Az alapot az adja, hogy a Sniper Elite 3 című játékban ugyanolyan szintű grafikai beállítás mellett a Mantle API-n futtatott leképző jobb minőségű textúrázást biztosít, mint a DirectX 11-es mód. Ezt konkrétan a fejlesztők sem titkolják, ugyanis állításuk szerint az Asura videojáték-motor textúra streamelő algoritmusa másképp működik alacsony szintű hardverelérést biztosító grafikus API-val. Ennek eredménye, hogy bár a textúrák nem változtak meg, az új textúra streamelő algoritmus szinte mindig képes a lehető legjobb minőségű textúrák betöltésére, szemben a régi eljárással, aminek ez nem volt célja sosem.

A legfőbb kérdés, hogy eredményezhet-e jobb textúrákat egy új grafikus API. Elvileg ennek nincs alapja, hiszen a szállított tartalmon, azaz lényegében a textúrákon a programkód nem változtat, tehát a legtöbb felhasználó helyből manipulációra gondol. A kérdés azonban bonyolultabb, ugyanis számos koncepció létezik a textúra streamelésre. Arról máig vita van, hogy melyik a legjobb, de ezt főleg az okozza, hogy nincs egyértelműen előnyös koncepció, tehát a működést mindig az adott videojáték-motorhoz, a célzott gépigényhez, illetve megcélzott összesített élményhez érdemes szabni.

Az Asura videojáték-motor egyik érdekessége, hogy rendkívül speciális textúra streamelési opciót használ, és zömében ez teszi lehetővé, hogy a rendszer még gyengébb grafikus vezérlőkkel is igen jó sebességet mutasson fel, miközben még DirectX 11-es módban is nagyon jól skálázódik a sebesség az erősebb hardverek szempontjából. Ennek azonban ára is van. Arról van szó, hogy a grafika beállítására vonatkozó menüben a textúrák részletességét természetesen ultra minőségűre is lehet állítani, de ez jelen esetben csak egy felhatalmazás a szoftvernek, hogy ha van rá mód, akkor a legjobb minőségű textúrákat töltse be. Ugyanakkor, ha erre nincs mód, akkor betölthet alacsonyabb részletességű tartalmat is, figyelmen kívül hagyva azt, hogy a játékos ultra minőségű textúrákat szeretne látni.

Ennek a koncepciónak a célja, hogy az Asura videojáték-motor csakis akkor szabadítson fel memóriaterületet a VRAM-ban, ha arra elengedhetetlenül szükség van. Mint ismeretes, a DirectX 11-ben a memóriaterület felszabadítása az egyik legnagyobb probléma, ez ugyanis annyira drága művelet, hogy szinte biztosan egy apró akadás lesz az eredménye. A legtöbb modern videojáték-motor eleve úgy működik, hogy a lehető legritkábban kelljen a VRAM-ban a memóriaterületet felszabadítani, amit az Asura által használt rendszer még annyival kiterjeszt, hogy ha egy bizonyos mennyiségnél kevesebb VRAM áll rendelkezésre, akkor a rendszer a megadottnál kisebb felbontású textúrákat kezd el betölteni. Ennek a célja csakis az időhúzás, vagyis a lehető legtovább elkerülni azt, hogy ki kelljen adni a memória felszabadítására vonatkozó parancsot, ami ugye jó eséllyel apró akadást okozna. Ennek a következménye, hogy bizonyos idő elteltével viszonylag sok olyan textúra lesz a virtuális térben, amelyek a beállítás ellenére sem ultra minőségűek. A már betöltött alacsonyabb minőségű tartalmat ugyanis az Asura ok nélkül nem cseréli le jobbra. Ez a rendkívül speciális, de eléggé átgondolt működés természetesen azt okozhatja és okozza is, hogy egy alacsony szintű hardverelérést biztosító grafikus API-n még a megegyező beállítások ellenére is jobb lesz a textúrák minősége.

A Rebellion a PC-re is azt a működést menti át, amit az Xbox One és a PlayStation 4 konzolon használnak. Ez persze a PC-s hardverek sokszínűsége következtében némileg eltér, de csakis a változó mennyiségű VRAM következtében. Az új koncepció alapja, hogy a textúrák számára fenntartott memóriaterület előre le lesz foglalva. Ebbe kerülnek a blokkok, amelyek lényegében maguk a textúrák. Az előny ott keletkezik, hogy a VRAM elérése közvetlen, így egy blokk felszabadítása egyszerűen megtörténhet, vagyis a nem használt textúrákat a DirectX 11-ben alkalmazott, rendkívül bonyolult erőforrás-ellenőrzési procedúra lefuttatása nélkül is el lehet távolítani a memóriából. Ugyanakkor ezért a műveletért mostantól az Asura videojáték-motor felel, tehát a fejlesztőnek kell biztosítania, hogy maga a textúra streaming hibátlan lesz minden helyzetben. Mivel ez már az Xbox One és a PlayStation 4 konzolon működik, nincs különösebb limitáció arra vonatkozóan, hogy ne működhessen PC-n. Ez a fő oka annak, hogy a Mantle API-n futó Sniper Elite 3 a DirectX 11-es módhoz képest jobb minőségű textúrákat eredményez. Természetesen amint a rendszer része lesz a DirectX 12 és a Metal API támogatása, azonnal hasznát lehet venni ennek a koncepciónak a többi alacsony szintű hardverelérést biztosító grafikus API-n is. Ez tehát nem manipuláció, egyszerűen a hatékony működéshez szükség van a VRAM közvetlen elérésére, amire a DirectX 11 nem ad lehetőséget, a DirectX 12 pedig még nem elérhető, így a Rebellionnak nem volt választása.

Öröm az ürömben, hogy a Sniper Elite 3 a legújabb frissítéssel nem csak a Mantle API-t kapta meg, hanem az újratervezett programkódot is, vagyis a DirectX 12 API-t a Rebellion nagyjából két-három hét alatt beépítheti, és akár ez a mód is szállítható lesz egy frissítés keretében az említett játékhoz. A DirectX 12 pedig ugyanazokat az előnyöket fel tudja majd mutatni, amiket most a Mantle mód. Ebből a szempontból természetesen szerencsés, hogy a Rebellion nagyon sokáig szokta támogatni a Sniper Elite sorozatot. Noha hivatalos bejelentés a DirectX 12 támogatására vonatkozóan nincs, de mivel a munka oroszlánrészét már most elvégezték, így rendkívül kis befektetést igényelne még egy API támogatása egy jövőre érkező frissítésben. A DirectX 12 úgyis része lesz az Asura videojáték-motornak, így akár debütálhatna a Sniper Elite 3-ban is.

Előzmények

Hirdetés