Regisztráció és bejelentkezés

RenderGraph használata a renderelési csővezeték optimalizálására

A modern új generációs alacsony szintű grafikus és számítási API-ok megjelenésével (például a Microsoft által fejlesztett DirectX 12, vagy a Khronos Group által specifikált Vulkan) a fejlesztők felelőssé váltak a renderelési környezet inicializálásáért, memória-allokációkért, az erőforrások élettartamának kezeléséért és még sok másért. Ennek következtében jelentősen nehezebbé vált egy könnyen bővíthető, hatékony grafikus motor fejlesztése, amely lehetővé teszi a bonyolult renderelési csővezetékek egyszerű létrehozását.

A dolgozatomban bemutatom a render graph-ok használatát, ami egy magas szintű reprezentációja a render pass-oknak és erőforrásoknak. Segítségével jelentősen megkönnyíthető a bonyolult renderelési csővezetékek létrehozása. A render graph rendszer egy vizuális eszközt kínál a fejlesztők számára, mellyel könnyedén le lehet írni a renderelési folyamatot. A rendszer elrejti a fejlesztők elől az alacsony szintű műveletek nagy részét, mint az erőforrások, és azok élettartamának kezelését valamint a memória foglalásokat. Ez továbbá lehetőséget nyújt különböző optimalizációkra, például az erőforrások újrahasznosítására, amivel akár jelentős mennyiségű memóriát takaríthatunk meg. A render graph-ok használata elterjedt a modern játékmotor fejlesztésben, erre a leggyakrabban emlegetett példa az Epic Games által fejlesztett Unreal Engine, és annak a Render Dependency Graph modulja, vagy a DICE Frostbite motorjának FrameGraph-ja.

Továbbá bemutatok egy működő render graph implementációt, amit a Vulkan API felhasználásával készítek.

szerző

  • Kovács Balázs
    Mérnök informatikus szak, alapképzés
    alapképzés (BA/BSc)

konzulens

  • Fridvalszky András Máté
    doktorandusz, Irányítástechnika és Informatika Tanszék

helyezés

III. helyezett