NVIDIA GeForce GTX 980: Maxwell második felvonás

A GM204 extrái

Az előbbi oldalt kiegészítve a GM204-ben van pár olyan érdekes képesség, amelyet érdemes szemügyre venni. Ezeket ömlesztve tálaljuk, de persze a magyarázat nem marad el! Az NVIDIA leginkább az FMAA-t (multi-frame sampled anti-aliasing) emelte ki, mint olyan újdonságot, amelyet csak az új hardver támogat. Ez tulajdonképpen egyfajta temporális MSAA. A technika működéséről részletes leírást adtunk a fenti linkben, de a temporális tényező fontos, mivel az MSAA alkalmazása során a mintavételi pontok minden egyes képkocka minden egyes pixeljén pontosan ugyanott helyezkednek el.

Általános az a nézet, hogy a négymintás MSAA ad úgymond elfogadható eredményt, mivel a négy darab mintavételi pont nagyrészt lefedik az adott pixelt. Ez jól látható a fenti képen is. A két darab mintavételi pont már nem olyan hatékony, mert a négymintás opcióhoz képest a pixeleken belüli legfelső és legalsó pontot lehet használni. Az MFAA tulajdonképpen egy olyan kétmintás MSAA megoldás, ami az egyes szomszédos pixeleken máshol végez mintavételezést, de nagyon fontos, hogy az egymás után következő képkockák esetében ugyanannak a pixelnek a mintavételezése módosul. Innen a temporális jelző és az alábbi kép jól szemlélteti a működést.

Az MFAA előnye, hogy a kétmintás MSAA teljesítményigényével rendelkezik, de annál jobb munkát végez, noha képminősége nem éri el a négymintás MSAA-t – de nem is ez volt a cél. Hátránya, hogy temporálisan nem stabil, ami azt jelenti, hogy ha a kamera nem mozdul, akkor minden egymás után következő képkocka eredménye valamekkora mértékben eltér.

Az MFAA a GM204-es GPU-ra épülő VGA-kon aktiválható a driveren belül. Mivel ez a technika az MSAA-hoz kapcsolódik, így csak olyan játékban működik, amely az MSAA-t teljes mértékben támogatja.

Az NVIDIA az élsimítás mellett kiemelte a VXGI effektet, ami a voxel global illumination rövidítése. A globális illumináció a mai játékokban általánosan alkalmazott megoldás, de a ma jellemzően használt implementációk nem adnak elég jó eredmény – főleg a legtöbb videojáték-motorban használt Enlighten technológia, amely tulajdonképpen egy hamis hatást kelt, noha kétségtelen, hogy számításigénye elenyésző.

Ugyanakkor a modernebb motorokban megtalálható light propagation volumes és virtual point lights egész korrekt működést kínál jó teljesítmény mellett, de az igazán korszerű koncepció a voxel cone tracing. Utóbbi régóta létezik, de a PC-s alkalmazására tett kísérletek rendre kudarcot vallottak. Egyedül a Sony jutott el a tényleges használatáig, de ezt is csak a PlayStation 4-en oldották meg. Mindenesetre a The Tomorrow Children egész jó alapot ad arra, hogy a rendszer működését megérthessük, hiszen az alábbi cikkünkben beszámoltunk a technikáról, illetve egy videóban is megtekinthető a hatása.

Az NVIDIA most kidolgozta a saját effektjét, és ez nem meglepő módon azokra a problémákra reagál, amelyek ellehetetlenítették a voxel cone tracing PC-s használatát. A legnagyobb probléma az SVO, azaz sparse voxel octree adatstruktúra, ami nagyon sok memóriát igényel, illetve rendkívül rosszul kezelhető és skálázható egy grafikus vezérlőn belül. Nem véletlen egyébként, hogy a The Tomorrow Children sem ezt használja, hanem inkább kaszkád 3D-s textúrázást implementál PRT technikán keresztül.

Az NVIDIA is jól látta, hogy a gyorsítóstruktúra a kulcsa az egésznek, így kidolgoztak egy új megoldást, ami a jelenet voxelizálását gyorsítja fel. Utóbbival az a gond, hogy a megfelelő eredmény érdekében több nézőpontból kell elvégezni, ami egyszerű megközelítéssel azt is jelenti, hogy ugyanannak a jelenetnek a geometriáját többször kell kirajzolni. Manapság azonban a geometry shader használatával ez megúszható, de sok hardveren ez sem gyors megoldás, hiszen nem mindegyik architektúra van kigyúrva a komolyabb geometriai manipulációkra.

A VXGI az Unreal Engine 4-ben A VXGI az Unreal Engine 4-ben A VXGI az Unreal Engine 4-ben
A VXGI az Unreal Engine 4-ben [+]

A GM204 egy harmadik megoldást kínál, amely lényegében egy bitmaszkot eredményez a vertex shaderek kimenetein, így az adott háromszög szimplán lemásolható az összes nézőpontnak megfelelően. Ennek használatával anélkül megoldható a voxelizálás, hogy többször kellene kirajzolni a geometriát vagy esetleg geometry shadert kellene használni. Ezt a vállalat viewport multicast néven emlegeti. Az elvi működés tekintetében a koncepció nagyon hasonlít az AMD két és fél éve bemutatott viewport indexing technikához.

A voxel cone tracing esetében szintén fontos tényező a konzervatív raszterizáció, ami arra szolgál, hogy a raszterizálás a mostani kötött formánál jobb irányíthatóságot kapjon. Mint ismeretes, a normál raszterizálás esetében a háromszög akkor fedi az adott pixelt, ha a mintavételi pont fedi azt. A konzervatív raszterizáció esetében lehetőség van arra, hogy a háromszög akkor is fedje a pixelt, ha annak csak egy nagyon apró része nyúlik bele a pixelbe. Ez a voxelizálás során is lényeges, mert a voxelizált tartalomnál az eredeti háromszög adatait jól kell visszaadnia. Természetesen a konzervatív raszterizáció megoldható pixel shaderrel is, de a hardveres támogatáshoz képest lassabban.

A voxel cone tracinghez a többi számítás már nem túl megterhelő, ezeket szimplán, fixfunkciós hardverek nélkül is meg lehet oldani. A GM204 az NVIDIA mérései szerint háromszorosára gyorsult az voxelizálásra vonatkozó fázisban, amikor a fixfunkciós hardver és a konzervatív raszterizálás aktív volt.

A VXGI effekt a GameWorks csomag része lesz. A Maxwell fentebb említett, viewport multicasthoz szükséges fixfunkciós motorja más formában nem lesz hozzáférhető a fejlesztők számára, de az NVIDIA az esetleges jó ötletekre igény esetén készíthet effekteket. Annyi kiderül még, hogy az Unreal Engine 4-be beépítik a VXGI effektet a GameWorks csomaggal együtt, de más videojáték-motorra vonatkozó támogatásról nem esett szó.


A háromszög lefedése normál (lila) és kozervatív (narancssárga) raszterizálással

A konzervatív raszterizálás egyébként a DirectX 12 API-nak is a része lesz, illetve a GM204 másik újítása a raster order view, ami az Intel PixelSync technológiájának konkrét másolata, és szintén része a DirectX 12-nek.

A konzervatív raszterizálás és a raster order view esetében az NVIDIA a DirectX 12-re vár, de lesz egy alternatív elérhetőség is a DirectX 11 új kiegészítésével, amely később érkezik meg.

A raster order view esetében fontos kiemelni, hogy bármennyire is a PixelSync másolata, az utóbbi technológiához tartozó kiterjesztésekkel készült kódok nem futnak rajta, tehát ezeket újra kell majd írni.

A cikk még nem ért véget, kérlek, lapozz!

Azóta történt

Előzmények

Hirdetés