Négy új eljárással bővült az AMD FidelityFX

A nyílt forráskódú eszközkészlet régóta létező és valós technikai problémákra kínál modern megoldásokat.

Az AMD még az előző évi E3-on mutatta be a FidelityFX-et, amelynek múlt nyáron publikálták az első verzióját. Ez akkor még csak a Contrast Adaptive Sharpening, azaz a CAS 1.0-s eljárást kínálta, de már akkor megígérték, hogy később bővülni fog a lehetőségek sora. A vállalat most bemutatta az új FidelityFX eljárásokat, egészen pontosan négyet. A koncepció a korábbiakhoz hasonlóan változatlan, valós fejlesztői problémákra keresnek nagy teljesítményű és modern megoldásokat.

Az egyik újítás az SPD, azaz a Single Pass Downsampler. Ennek segítségével a fejlesztő akár 12 MIP szintet képes generálni az adott, maximum 4096x4096 pixeles textúrából. Erre akkor lehet szükség, ha az adott textúrából felesleges, vagy éppenséggel kifejezetten káros a teljes felbontású verziót használni. Például amikor maga a textúra a teljes képen csak pár pixelt foglal el, vagy esetleg különböző utófeldolgozásra vonatkozó effekteknél kismértékű képi torzulásokat eredményezne. A dolog igazából nem újdonság, nagyon régóta használják a MIP szinteket a játékoknál, viszont a generálásra vonatkozó technikai háttér tekintetében a tradicionális megoldások esetében problémát jelent, hogy ha mondjuk a tizenkettedik MIP szintre van szükség, akkor ahhoz bizony 12 fázison keresztül lehet eljutni.

FidelityFX SPD
FidelityFX SPD [+]

Az AMD SPD eljárása itt újít, ugyanis lehetővé teszi, hogy a szükséges MIP szint egyetlen fázison belül legenerálható legyen, és így még aszinkron compute módban is alkalmazható a technika, mivel nem több fázis hiányában szinkronizációs követelmény sincs a fázisok között. A vállalat eljárása emellett támogatja a rapid packed math képességet, illetve a GLSL vagy HLSL shader nyelvektől függően subgroup vagy wave operációkkal is gyorsítható a feldolgozás.

Az LPM, vagyis a Luminance Preserving Mapper rendkívül hasznos lesz azon fejlesztők számára, akik HDR-re vonatkozó támogatást, ezzel együtt wide gamut tone és gamut mappinget szeretnének a játékukba építeni. Erre a lehetőség régóta adott, de a gyakorlatban nem annyira egyszerű dologról van szó, ugyanis számos teszt elvégzése, illetve utólagos paraméterezés szükséges ahhoz, hogy a végeredmény megfelelő legyen. És itt nem csak kizárólag a HDR-ről van szó, hanem figyelembe kell venni a nem HDR-es kijelzőkat is, tehát alapvetően egy olyan kijelző-futószalag kell az adott játékba, ami mindenhol jó eredményt ad. Ez az a rész, amit könnyebb eltervezni, mint megvalósítani.

Az AMD LPM ezt hivatott leegyszerűsíteni. A vállalat megoldása érdekes módon nem LUT-alapú, ahogy a legtöbb videojáték-motor futószalagja, hanem az ALU-kra, azaz lényegében a GPU általános számítási kapacitására épít. Ennek ugyan van sebességcsökkentő hatása, de aszinkron compute módban is futtatható maga a feladat, amivel viszont már elhanyagolható sebességveszteséget kell csak bevállalni még a kisebb GPU-kon is, ami részben köszönhető a rapid packed math képességet támogatásának is.

Egységnyi idő alatt elvégzett paraméterezés LPM nélkül és LPM-melEgységnyi idő alatt elvégzett paraméterezés LPM nélkül és LPM-mel Egységnyi idő alatt elvégzett paraméterezés LPM nélkül és LPM-mel [+]

Az AMD által felkínált eljárás tekintetében fontos, hogy a fenti két kép összehasonlítása igazából az időre vonatkozik, mint alapvető problémára. Ha egy fejlesztésnél hónapokig lehetne tökéletesíteni az adott kijelző-futószalagot, akkor valószínűleg ki lehetne hozni a tradicionális módszerekből is azt, amit az LPM mutat. De a legtöbb játékfejlesztő gondja az, hogy nincs rá idő, a befektetők türelmetlenek, és a legkevésbé sem fogja érdekelni őket, hogy az adott játékban nem olyan a fénykezelés és az árnyalás, amilyennek lennie kellene. A pénzt úgyis visszahozza, ha a színek nem tökéletesek. Az LPM-mel viszont egy új lehetőséget adott az AMD a fejlesztők kezébe, amivel az egész munkamenet leegyszerűsíthető, és így kevésbé lesz probléma az idő.

A fentieken túl az AMD konkrét effektekkel is készült. Az egyik a CACAO, ami a Combined Adaptive Compute Ambient Occlusion rövidítése. Ez egy képkocka szintjén működő Ambient Occlusion (AO) technika, aminek az alapjait még az Intel fejlesztette ki régebben. Ennek az eljárásnak az volt anno a legnagyobb előnye, hogy hihetetlenül gyorsan futott, ami nem véletlen, a Santa Clara-i óriáscég ezt az IGP-ihez szánta. Ami meglepő, hogy a jó sebessége mellett még a minősége is igen kellemes volt, de persze az Intel sosem célozta komolyabb hardvereket vele, annak ellenére sem, hogy az algoritmusban rendkívül komoly potenciál rejlett.

Tradicionális SSAO és FidelityFX CACAOTradicionális SSAO és FidelityFX CACAO Tradicionális SSAO és FidelityFX CACAO [+]

Az AMD azonban a nyílt forráskódú fejlesztés előnyeit kihasználva elővette a technikát, átportolta compute shaderre, majd módosították az adatkezelést, és hozzáadtak egy felskálázási opciót, hogy komoly minőséget is el lehessen érni az effekttel. Az eredmény egy rendkívül gyors, nagymértékben skálázható Ambient Occlusion technika lett. A fejlesztők emellett kiválaszthatják, hogy grafikai vagy compute futószalagon szeretnék futtatni, ráadásul utóbbi esetben opció az aszinkron compute.

FidelityFX SSSR kikapcsolva és bekapcsolvaFidelityFX SSSR kikapcsolva és bekapcsolva FidelityFX SSSR kikapcsolva és bekapcsolva [+]

A másik grafikai effekt az SSSR, vagyis a Stochastic Screen Space Reflections. Ez tulajdonképpen egy képkocka szintjén működő tükröződést biztosító eljárás, és az alapul szolgáló algoritmust még a Frostbite Team dolgozta ki a Mirror's Edge Catalyst című játékhoz. Az AMD erre épített, de az eredeti algoritmust átalakították a modern lehetőségeknek megfelelően, így az már nemcsak gyorsabban fut, de jobb minőséget is garantál.

A FidelityFX új eljárásai elérhetők az alábbi GitHub oldalon keresztül.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények

Hirdetés