Részben magyar fejlesztésű algoritmussal jeleníthetnek meg élethű grafikát a közeljövő videojátékaiban. A technológiára már az Activision Blizzard is lecsapott, így hamarosan élesben is tesztelhetjük.
A hardverek fejlődésével a videojáték-karakterek kidolgozása is egyre részletesebb lett, de ez a fejlődés az utóbbi években lassulni látszik. Az ezredfordulón két konzolgeneráció között ugrásszerűen javult a 3d játékok minősége: a Playstationön jelentek meg a felismerhető 3d-s karaktermodellek, de a Playstation 2 már finom arcmimikát is meg tudott jeleníteni. Ekkora ugrásra már nem számíthatunk: az elmúlt öt-tíz évben a harc már a tized- és századmilliméterekért, az apró részletekért folyt.
Hosszú távon pont ezek a részletek választhatják el a jól kinéző számítógépes grafikát a hiperrealizmustól. Manapság gyakran használt kifejezés az uncanny valley, avagy rejtélyes völgy. Az eredetileg Mori Maszahíró japán robotikaprofesszor által megfogalmazott tétel szerint minél inkább élethűen formázunk meg egy ember formájú robotot, a valódi emberek annál könnyebben elfogadják azt – van azonban az ezt az elfogadást bemutató grafikon görbéjében egy érdekes zuhanás, ezt nevezik rejtélyes völgynek. Ez a zuhanás azt a határt mutatja meg, ahol egy robot még épp nem elég emberszerű ahhoz, hogy az emberek ne gondolják azt ijesztőnek, kellemetlennek vagy egyszerűen csak furcsának – az emberek ugyanis a rosszul embernek formált, így fokozottan természetellenesnek ható robotokat nehezebben fogadják el, mint a szándékosan elnagyolt, látványosan robotszerű megoldásokat. A számítógépes grafikában is fontos a kikecmergés a völgyből, vagyis az a szükséges plusz, amitől az összhatás nem mesterségesnek, hanem természetesnek tűnik. Ehhez viszont sok-sok részletet kell finomítani, kidolgozni és mozgás közben megjeleníteni.
A 3d tervezőprogramok használói évtizedek óta tudják, hogy minél pontosabban modellezik a fény útját és hatását, annál realisztikusabb lesz a végeredmény. Csak nem mindegy, milyen áron. A ray tracing eljárással például fotononként lehetett modellezni a fénysugarak útját, és a kilencvenes években már elképesztő eredményeket értek el vele. De nem a játékokban. A Pixarnak volt ideje kivárni, hogy első animációs filmjeikhez órák alatt rendereljenek egy-egy képkockát, de a pörgős játékokhoz ez túl lassú volt – főleg a korabeli számítógépeken.
A ray tracinget jól lehetett használni olyan effektekhez, mint a tükröződés vagy az árnyékok megjelenítése, mivel ezeknek a kinézetét elsősorban a fény befolyásolja. De ha egy részletesen kidolgozott háromdimenziós térben a bevilágításnál minden foton útját kiszámítanánk, az még egy szuperszámítógépet is megrogyasztana. Minél több a fény, annál jobb a látvány – csak ennek meg is kérik az árát.
Zsolnai Károly a Budapesti Műszaki Egyetem elvégzése után a Bécsi Műszaki Egyetemen tanult tovább; most is itt tanul és dolgozik PhD hallgatóként. A Disney megkereste őt és szerződést ajánlott: a cég az új animációs filmjéhez szeretett volna segítséget kérni. A projekt befejezése után megtudta, hogy az Activision Blizzard egy, az emberi karakterek minél élethűbb megjelenítésére kifejlesztett egy új algoritmus korai változatával kísérletezik, és megtetszett neki az ötlet: úgy látta, körültekintő tudományos megközelítéssel sokkal többet lehetne kihozni belőle.
A felek korábbi tudományos konferenciákról már ismerték egymást, így megegyeztek, hogy a kutatók valós fizikai alapokra építve újratervezik az algoritmust. A fejlesztés az Activision Blizzard, a Bécsi Műszaki Egyetem és a Zaragózai Egyetem kollaborációjaként zajlott, a végeredmény pedig a Separable Subsurface Scattering (SSSS) névre hallgató eljárás lett, amely mindezt valós időben képes kiszámítani.
Az SSSS egy digitális fénykezelési eljárás; az algoritmusról Jorge Jimenez Zsolnai Károllyal és több társszerzővel együtt készített egy hosszabb tanulmányt. A betűszóban a scattering a kulcsszó, ami szóródást jelent, méghozzá a megvilágított objektumok belsejébe jutó fény szóródását. Ha például erős fény elé tartjuk a kezünket, láthatjuk, ahogy a fény átsugárzik rajta – az SSSS ezt az effektust próbálja szimulálni.
Zsolnai szerint ez azért problémás, mert a hagyományos grafikai algoritmusokkal a térben elhelyezett objektumokat felületként modellezik, és azt vizsgálják, hogy a fény hogyan lép interakcióba ezekkel. A valóságban viszont sok anyag létezik, amelyeknek a felületén áthaladó fény a belsejükbe is bejut. A fotonok ilyenkor az objektumon belül különböző irányokba szóródnak szét, akár több ezer alkalommal is, míg végül elnyelődhetnek.
Az algoritmus fejlesztésénél a tervezők abból indultak ki, hogy az olyan anyagok, mint a bőr, nem egyszerű felszínek; a vastagságukat és kiterjedésüket is figyelembe kell venni. Az SSSS a fény útvonalának feldolgozásakor ezt is számításba veszi. Szó szerint: ahogy a ray tracingnél, úgy az SSSS-nél is ki kell számítani a fényszóródás útját, amihez viszont nagy számítási teljesítmény kell. Mivel a szóródás realisztikus modellezéséhez gyakran több milliárd foton útját is ki kell számítani, az alkalmazott algoritmustól függően egy ilyen számítás akár órákig is eltarthat. Cserébe viszont élethűen lehet modellezni olyan anyagokat, mint az emberi bőr, a márvány, a falevelek, vagy a tej.
Köztes szoftvereket, úgynevezett middleware-t szinte minden cég használ: több játékfejlesztő támaszkodik a Havok fizikai motorra, szinte mindenkinek megfelelnek a Dolby hangszabványai, és a fejlesztők gyakran a grafikus motort is inkább licencelik, mint hogy sajátot fejlesszenek. Az SSSS nem önálló grafikus motor, hanem egy algoritmus, viszont épp ezért könnyen lehet létező rendszerekbe integrálni.
Nagyon sok újabb grafikai technika lát napvilágot nap mint nap, ám legtöbbjükkel komoly komplexitási és integrációs problémák vannak. Ha sok ilyet halmozunk fel egy grafikai motorban, az hamar kezelhetetlenné válik. Mi egy elegáns megoldásra törekedtünk, ahol az algoritmus a számításokat a már kirajzolt képen végzi el egy egyszerű utófeldolgozási lépésben.
– mondta Zsolnai.
Az algoritmus implementációjával tehát nem volt probléma; az SSSS-t egyszerűen lehet beépíteni szinte bármilyen rendszerbe. Jimeneznek az a bravúr sikerült, hogy az algoritmust egy mai videokártyán is futtatni lehet: akár a mostani konzolgeneráció gépein, a Playstation 4-en és az Xbox One-on is használható. Használni is fogják, például az Activision Blizzard játékaiban, és arra számítanak, az algoritmus különböző variánsai hamarosan fellelhetők lesznek több népszerű grafikus motorban.
Jimenez szerint az ultrarealisztikus bőr megjelenítésére irányuló kísérletek hiábavalók, ha ez nem párosul kellő dinamikával, fényeffektekkel, megfelelő mélység-élesség megjelenítéssel, textúrákkal és tónusokkal. És ez közel sem minden: figyelni kell a modellek minőségére, a geometriai felületekre, a megfelelő árnyékkezelésre, illetve a csúcsminőségű élsimításra. Ha ezek közül bármelyik hiányzik, az illúzió széthullik: enélkül nem lehet átkelni az uncanny valley-n. Különösen nem a nagy felbontású (1080p) képeken, ahol már fontos, hogy a bőr megjelenítésére is odafigyeljenek.
Sealclubber, egy hozzáértő Reddit-felhasználó azt írta az SSSS-ről: az algoritmus valós időben tudja azt, amit a filmes cégek legjobb számítógépei. Sőt, szerinte bőven túl is mutat rajtuk: a 3D Studio Maxszal fél óráig tartana renderelni egy olyan részletességű képkockát, mint amilyenekből az SSSS-sel másodpercenként 100-150-et lehet. A készítők ezt egy 200 dolláros videokártyával demonstrálták, amivel az emberi arc karaktermodelljét 112 képkocka / másodperces sebességgel tudták megjeleníteni. A kész algoritmus nemcsak a bőrt, hanem minden olyan anyagot meg tud jeleníteni, amelyekben térfogati fényszóródás figyelhető meg.
Egy videojáték futtatásához nemcsak az élethű bőrhöz, hanem rengeteg más tényezőhöz is szükség van a számítási teljesítményre. Zsolnai is megjegyezte, hogy a valós idejű végrehajtás mellett egy mai, modern játékban számolni kell mesterséges intelligenciával, több csatornás hangkezeléssel, fizikai motorral is, és ezek további erőforrásokat igényelnek. Mostanáig nem volt rá számítási kapacitás, hogy az SSSS szóródási effektusait is beépíthessék a játékokba, viszont a hardverek fejlődése és az új algoritmus már ezt is lehetővé teszi.
Az új algoritmusban nukleáris fizikai egyenleteket kombináltunk alacsony rangú mátrix-faktorizációs módszerekkel. Nagyon érdekes élmény volt, hogy az atombomba kifejlesztésekor felfedezett elméleteket immáron békés célokra lehetett felhasználni, ráadásul egy teljesen más területen. A végső algoritmus egy átlagos otthoni videokártyán végzi el ezt a feladatot full HD felbontásban, képkockánként egy fél ezredmásodperc alatt.
– mondta Zsolnai Károly.
Az algoritmus nem csak videojátékokhoz használható. Mivel a fejlesztők szerették volna, ha a végeredmény a tudományos kutatások és az ipari szereplők elvárásainak is megfelel, több variációt is készítettek. Zsolnai szerint az egyik variáns előnyeit tudományosan bizonyítani lehet, mint egy tételt: így lehet megmutatni, hogy a végeredmény garantáltan életszerű lesz. Ez a módszer nagyon általánosan van megfogalmazva, és a digitális jelfeldolgozás számos területén felhasználható, például akusztikus hangmodellezési, szeizmológiai, illetve elektronikai problémák megoldására.
A többi módszer kevésbé egzaktul bizonyítható, de Zsolnai úgy látja, gyakorlati esetekben ezek is jól használhatók és jól manipulálhatók; ennek az az előnye, hogy így a művészek különleges igényeihez lehet igazítani őket. A kreatív iparban ez nagyon fontos szempont; ezért is szerencsés, hogy együttműködhetnek játékfejlesztőkkel és filmstúdiókkal, mivel így a profi felhasználókkal folyamatosan egyeztetve dolgozhatnak.
(Aki az algoritmusról szóló tanulmányra kíváncsi, itt elolvashatja.)