Virtuális világok szimulációja és megjelenítése

Résztvevők:

Szirmay-Kalos László (témavezető)
Szécsi László
Umenhoffer Tamás
Várady Tamás
Tóth Balázs
Salvi Péter

A projekt keretében két fő analóg folyamat szimulációjára helyeztük a hangsúlyt: a rajzolás és festés, azaz az információ illusztratív ábrázolása, és az anyag belsejében történő fényelnyelődés és szóródás. Az illusztratív képszintézishez először a rajzoló matematikai modelljét állítottuk fel. Két fő problémakört jártunk körül, az egyik a vonalkázás, a másik a kontúrozás kérdése. A művészi vonalkázás szintézisekor feltételezzük, hogy a 3D geometria kiemelése érdekében a rajzoló a fő görbületi irányokban vonalkáz. A fő görbületi irányok és a görbület nagysága jól megfogható matematikai jellemzők, melyek a geometriát jól jellemzik. Kiszámításukhoz csak a virtuális tárgyak 3D geometriai leírása szükséges szemben olyan jellemzőkkel, mint az azonos megvilágítási értékű felületi pontok által meghatározott irányok (isophote), melyek szintén alkalmasak lehetnek a vonalkázási irány meghatározására. A görbületi irányok további előnye, hogy animáció során a felülethez képesti irányuk nem változik, független a fényforrások és a kamera pozíciójától, irányától, mely függés zavaró vizuális hibákat okozhatna. A vonalkázási irány meghatározásán kívül fontos a vonalkázás sűrűségének helyes meghatározása. Ez a sűrűség sok jellemzőtől függ: az objektum képtérbeli méretétől, így a virtuális kamerától való távolságtól, és a felület irányától, az aktuális megvilágítástól, és a művész egyéni szándékától. A megfelelő sűrűséget úgy értük el, hogy elegendően nagyszámú vonalkák pozícióját a felületekhez rögzítettük, majd a fentebb felsorolt mennyiségeknek megfelelően ritkítottunk őket. A vonalkák felülethez rögzítése szintén az animáció során fellépő zavaró zajjelenségek kiküszöbölése miatt fontos. Az általunk kidolgozott végső vonalkázási módszer természetes hatást nyújt, jól szemlélteti a geometriát és megvilágítást, és időben is kellemesen simán változik. A módszer egyaránt jól alkalmazható valós idejű alkalmazásoknál és produkciós környezetben is.

Az illusztratív megjelenítés második fő problémaköre, a kontúrozás. A sziluetteket és kontúrokat a normálvektornak a nézeti irányhoz mért szélsőértékei határozzák meg. Ezen kívül sokszor szükség van olyan vonalakra is, melyek a geometria megtörésénél, hirtelen változásánál jelentkeznek, és a geometria görbületének változásának szélsőértékei mentén húzódnak. A vonalakat tehát szintén a geometria feldolgozásával tudjuk kinyerni, magas minőségű megjelenítésükhöz ecsetmintával ellátott textúrázott szalagokat használunk. A megjelenítés során a fő problémát a hosszú, folytonos vonalak azonosítása, és textúrázásnál használt paraméterezésük meghatározása jelenti. Ha a felületet sima, lekerekített felületnek tekintve a szélsőértékeket a háromszögek élein keresve folytonos vonalakat tudunk előállítani. Azért, hogy az animáció során ezen vonalak hirtelen előbukkanását és textúra paraméterezésük hirtelen változását elkerüljük, az időben szomszédos képkockákhoz tartozó vonalakat feldolgozzuk, egyértelműen azonosítjuk őket, átlátszóságukat paraméterezésüket szükség szerint az előző képkockákhoz igazítjuk. A kontúr vonalak ezután tovább finomítjuk, rövidíthetjük, nyújthatjuk, szélesíthetjük, éles kanyarulataiknál megtörhetjük és kettéoszthatjuk őket. Az elkészült rendszerben széles eszköztárat biztosítunk a különböző művészi megjelenítési forma reprodukálására.

Az egyedi kifejezésmódot és a vonalrajzolás természetességét tanítással, valós minták felhasználásával garantáltuk. A vonalak véletlenszerűsítését valódi ecsetminták statisztikai elemzéséből, és az alapján egy statisztikai automata konstruálásával végeztük el. A hátterekre jellemző ecsetszerű elnagyoláshoz több különböző szűrési eljárást valósítottunk meg, mely kiegészítésként szolgál a vonalrajzolási módszerekhez. Az illusztratív képszintézishez kidolgozott módszereket mind valós idejű környezetben a GPU-n (Direct3D 11), mind pedig produkciós környezetben implementáltuk.

A második folyamat, és az anyag belsejében történő fényelnyelődés és szóródás modellezéséhez a fotorealisztikus képszintézist mind felületi modellekre mind térfogati modellekre vizsgáltuk. A felületi modellek esetén fellépő fényszóródási jelenségek közelítő leírására az eredeti környezeti takarás integrálját átírtuk úgy, hogy a felületi pontra illeszkedő félgömb nyitott részének térfogatát kiértékelhessük. Az új integrál kevesebb mintával is hatékonyan kiértékelhető, aminek a valós idejű alkalmazásokban van nagy szerepe. A fényelnyelő anyagok analógiájának alkalmazásához olyan algoritmusokat javasoltunk, amelyek a fényterjedést és a többszörös szóródás, elnyelődés folyamatait valós időben, közvetlenül a GPU-n futtatva szimulálhatják. Az egyik leglényegesebb kérdés a szabad úthossz mintavételezése, amelyet a nélkül kell megvalósítani, hogy a nagyfelbontású modellt teljes egészében be kelljen járni. A mintavételezendő közeg mind nagyfelbontású voxel tömbként megadható, mind procedurálisan generálható. A szabad úthossz egyszerű meghatározását "virtuális" részecskék hozzáadásával teszi lehetővé az új módszer. A valós és virtuális részecskék teljes kioltási tényezőjét egy kis felbontású, úgynevezett szuper-voxel rácson írjuk le, melynek voxelei jóval nagyobbak lehetnek, mint a szóró közeg definíciójánál használt rács voxelei. A szuper-voxel rács felhasználásával a szabad_úthossz mintavételezése lényegesen gyorsabban elvégezhető, mivel a javasolt algoritmus számításigénye csak a szupervoxel rács felbontásától függ. A javasolt módszer ezért különösképpen alkalmas nagyméretű és alacsony sűrűségű inhomogén szóró közeg megjelenítésére, amelyet a szokásos módszerekkel csak nagyon nagy nehézségek árán lehetne modellezni.

Publikációk

Partnerek:

  1. Zinemath
  2. Hewlett Packard High Performance Computing Division
  3. GameTools
  4. Lichthof Studios