Hirdetés

VKHR néven jött meg a Vulkan API-ra írt hajszimuláció

Az Erik S. V. Jansson által vezetett projektet gyakorlatilag a nulláról építették fel, a TressFX-nek csak a kutatásai anyagait használták.

Hat év telt el azóta, hogy a TressFX effekt bemutatkozott a 2013-as Tomb Raider című játékban, ami újraindította Lara Croft karrierjét. Az eljárást eredetileg a Crystal Dynamics, az AMD, a Confetti és a Nixxes dolgozta ki, és ez volt a világ első olyan technikája, ami a grafikus processzor erejét hasznosította a haj fizikai szimulációjához. Azóta elérhetővé vált a 2.0-s, a 3.0-s, a 4.0-s verzió is, illetve utóbbinak a göndör haj támogatásával kiegészített változata, amelyet a NetEase tervezett meg.

Hirdetés

Az AMD ugyanakkor egy ideje már nem készített új verziót a projektből, igazából nincs olyan újdonság, amit hozzá lehetne adni, viszont ez nem jelenti azt, hogy nem dolgoztak a háttérben. A TressFX esetében ugyanis limitációt jelentett, hogy DirectX 11 és 12 API-ra készült el, és mivel maga az effekt rendkívül bonyolult, így még a nyílt forráskód mellett is igen időigényes lenne Vulkan API-ra portolni. Ehelyett Erik S. V. Jansson, Matthäus G. Chajdas, Jason Lacroix és Ingemar Ragnemalm nem is ehhez láttak hozzá, hanem a TressFX-szel kapcsolatos összes korábbi kutatást felhasználva írtak egy nulláról felépített rendszert, amelynek VKHR, azaz Vulkan Hair Rendering lett a neve.


[+]

Az alábbi tanulmányban részletezett projektet az AMD és a Linköpingi Egyetem támogatta. Mivel a VKHR alapvetően nem egy TressFX port, így viszonylag sok helyen különbözik az AMD megoldásától, de a hajszimulációs eljárásokra vonatkozó tipikus problémák ugyanazok, tehát az ezekre adott válasz is hasonló, csak éppen más formában. Az önárnyék és az átlátszóság kezelésére gyakorlatilag ugyanazt a megoldást használják, amit a TressFX kínál, bár utóbbi szempontból csak a PPLL adatstruktúrára épülő eljárást alkalmazza a VKHR, az AMD sokkal gyorsabb shortcut módszere kimaradt. Ezzel az a probléma, hogy az úgynevezett mutex-alapú zárolási sémát nem nagyon szeretik a grafikus API-k, mivel a shadereket próbálja várakoztatni, illetve elzárja az erőforrásokat, így azokba csak meghatározott esetben írhatnak a shaderek. Ezzel a módszerrel az történik, hogy a hardver rendkívül agresszív módszerekkel próbálja úgymond kierőszakolni az egyes elemek jó sorrendben történő leképzését, így kerülve meg a sok erőforrást felemésztő sorba rendezést, és relatíve kis erőforrás befektetésével megszerezni a kívánt adatot. Az ilyen formában történő optimalizálás azonban egyik grafikus API-ban sem ajánlott, mert nem garantálható minden architektúrára a stabilitása. Persze az AMD felvállalhatja, hogy a saját hardvereire ezt megoldja, de mivel a VKHR nem egy GPUOpen effekt, így a kockázatos eljárásokat inkább hanyagolják.

Az élsimítás szempontjából a VKHR már az Emil Persson által kifejlesztett GPAA-t használja. Ez különbözik attól, amit a TressFX csinál, de a végeredménye nagyon hasonló. A szimuláció tekintetében a VKHR a TressFX szimulációjával való kompatibilitást követi, ami azért hasznos, mert ráhúzható a leképező bármilyen hajszálapapú szimulációs eljárásra.

Az egyéb különbségek tekintetében megemlítendő még a beépített Intel Embree, amivel sugárkövetéssel ellenőrizhetők az egyes hajmodelleken a különböző effektek, illetve a VKHR már a Cem Yuksel által kidolgozott, nyílt .hair formátumot használja.

A nyílt forráskódú VKHR elérhető az alábbi GitHub oldalon keresztül, és bármilyen videojáték-motorba integrálható, bár ez esetlegesen sok munkával járhat. Az egyetlen fix követelmény a Vulkan 1.1-es API, illetve egy olyan grafikus vezérlő, amely rendelkezik a megfelelő Vulkan implementációval, amit manapság igazán nem nehéz teljesíteni.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

  • Kapcsolódó cégek:
  • AMD

Azóta történt

Előzmények