BlackRoomGodot
Absztrakt
BlackRoomGodot alkalmazásom egy már létező szoftver, a C++ alapú BlackRoom képfeldolgozó szoftver újragondolása. A Godot játékmotor 4.0 verziójának multiplatformos lehetőségeivel olyan GPU architektúrákat céloztam meg, amelyek támogatják a Vulkan felületet. A különböző effektek megvalósításához Compute Shadereket használtam. Az egyes shaderekben számos egyedi algoritmust implementáltam. Az eredményeim közül kiemelkedik a saját effektek írását elősegítő kódszerkesztő, amely segítségével futási időben generálok csúszkákat a grafikus felületen a felhasználó újonnan létrehozott egyedi moduljaihoz az általa definiált shader változók alapján. Ezek a modulok elmenthetőek és később visszatölthetőek a munka folytatásához. További jelentős eredményem a maszkolást megvalósító hatékony rendszer, melynek segítségével az összes effekt használatát lehetővé tettem lokális módosítás végrehajtására is. Megvalósítottam továbbá a hisztogram számoláshoz használt shadert színcsatornánként és kombináltan fényességértékként is. A hagyományos eljáráson alapuló algoritmust a GPU belső működésének ismerete alapján sikerült több mint háromszorosára gyorsítanom. A BlackRoomhoz hasonlóan az egyes változtatások megmaradnak munkamenetek között, valamint az alkalmazás újbóli megnyitásakor helyreállnak. Ennek megvalósításához a Godot Engine objektumainak szerializációs lehetőségeit használtam fel.