Festményszerű megjelenítés valós időben Unity3D-vel

OData támogatás
Konzulens:
Dr. Szécsi László
Irányítástechnika és Informatika Tanszék

A számítógépes grafika egyik területe a nem-fotorealisztikus rendereléssel foglalkozik. Ezen módszerek lényege, hogy általában valamely hagyományos technikával létrehozott képre minél jobban hasonlító végeredményt igyekeznek létrehozni, nem pedig a minél tökéletesebb valósághűségre törekszenek. A dolgozatban a nem-fotorealisztikus képalkotáson belül a festményszerű megjelenítéssel foglalkozom, és felvázolok egy valós idejű teljesítményt nyújtó, képtérbeli információk alapján dolgozó algoritmust, amelyet Unity3D-ben implementáltam.

A saját algoritmusom működése a következő: először véletlenszerűen pontokat helyez el a képtérben, ehhez Halton sort használ a pontok egyenletes eloszlása érdekében. Az egyszerűbb megoldás ehhez CPU oldalon négyzeteket rajzol egy textúrába, amelyeket – mint egy folt középpontját – felhasználva egy Pixel Shader program megkeresi az adott ponthoz legközelebb álló ilyen foltot, és eszerint számolja ki a színét.

Az összetettebb megoldás minden Halton-sor által generált ponthoz Geometry Shader segítségével rendel egy négyszöget (pontosabban téglalapot), amelyet luminancia-kép alapján számolt gradienssel elforgat a megvilágítás szerint, illetve méretezi. Ehhez a skálázáshoz a Laplace szűrőt használja, mint éldetektáló algoritmus, amely a kép normálvektorain és mélységképén, vagy a színes képen dolgozik, választhatóan – amennyiben messzebb talál élt, a téglalap nagyobb, ha közelebb, kisebb lesz. Végül a Pixel Shaderben a téglalapok ecsetvonás textúrát kapnak, illetve a négyszög középpontjában elérhető színt.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.