Új OpenGL és Vulkan renderelőmotorok kerültek be a GTK-ba

A GTK könyvtár fejlesztői bejelentették két új renderelő motor készenlétét - a "ngl"-t és a "vulkan"-t, amelyek az OpenGL (GL 3.3+ és GLES 3.0+) és a Vulkan grafikai API-kat használják. Az új motorok az GTK 4.13.6 kísérleti kiadásába kerültek. Az GTK kísérleti ágában az ngl motor most alapértelmezetten használatos, de ha jelentős problémák merülnek fel, a következő stabil 4.14-es kiadásban vissza fogják állítani a régi "gl" renderelő motort.

Az új motorokat egységesített és egyetlen kódbázisból építették fel. Az egységesítés lényege, hogy a Vulkan API-ját használják alapként, amire egy külön absztrakciós réteg épül az OpenGL számára, figyelembe véve az OpenGL és Vulkan közötti eltéréseket. Ez a megközelítés lehetővé tette, hogy mindkét motorban közös infrastruktúrát alkalmazzanak a jelenet gráf (scene graph), transzformációk, textúra- és glifekészítés kezelésére. Az egységesítés jelentősen egyszerűsítette a kód bázisának karbantartását, és a két motor naprakészen tartását.

A régi "gl" motorral ellentétben, ahol minden renderelő csomópont (rendernode) számára külön egyszerű shader-t használtak, és időszakos adatújrendezést végeztek a háttérben történő rendereléskor, az új motorokban a hátteret renderelés helyett összetett shader (ubershader) alkalmazására kerül sor, amely értelmezi az adatokat a pufferből. A jelenlegi formájában az új implementáció még elmarad a régi optimizálási szinttől, mivel a jelenlegi szakasz fő figyelme a működés helyessége és a karbantartás egyszerűsége.

Új lehetőségek, amelyek hiányoznak a régi "gl" motorból:

  • Élek simítása - lehetővé teszi a finom részletek megőrzését és simább kontúrok megrajzolását.
    Új OpenGL és Vulkan renderelőmotorok kerültek be a GTK-ba
  • Tetszőleges gradiens létrehozása, amelyben bármennyi szín és simítás használható (a "gl" motorban csak lineáris, radiális és kúpgradiens támogattak 6 színstopparányokkal).
    Új OpenGL és Vulkan renderelőmotorok kerültek be a GTK-ba
  • Törtrészes skálázás (fractional scale), amely lehetővé teszi a nem egész értékek beállítását, például, ha 125%-os skálát használunk egy 1200×800 ablakhoz, akkor 1500×1000-es puffer fog kiemelni, nem pedig 2400×1600, mint a régi motorban.
  • DMA-BUF technológia támogatása, amely lehetővé teszi több GPU használatát és egyes műveletek áttevődését egy másik GPU-ra.
  • Számos renderelőcsomópontot helyesen kezelnek, amelyekkel korábban problémák voltak a régi megvalósításban.

Az új motorok korlátai közé tartozik, hogy nem támogatják a nem egész számú értékeken alapuló pozicionálást (fractional position) és a glshader csomópontokat, amelyek erősen összefonódtak a régi motor sajátosságaival, és amelyekre már nem volt szükség a maszkos csomópontok (mask) és az átlátszó textúrák támogatásának bevezetése után. Ezenkívül említést nyer a grafikus meghajtókkal kapcsolatos lehetséges problémák felbukkanásának valószínűsége, amelyeket a meghajtókkal való munkamódszer megváltozása okozhat.

A jövőbeli tervek között szerepel új renderelőmotorok létrehozása, amelyek Metal-t használnak macOS-en és DirectX-et Windows-on, de ilyen motorok létrehozását nehezíti az egyéb nyelvek használata a shadereknél (az "ngl" és "vulkan" motorokban GLSL nyelvet alkalmaznak, így Metal és Direct esetén vagy meg kell duplázni a shadereket, vagy egy SPIRV-Cross alapú réteg használatára van szükség).

A jövőbeli tervekről említést nyert a HDR támogatás biztosítása és a színkezelés megfelelő menedzselésének eszközei, GPU oldali renderelő út (Path rendering) támogatása, glifek renderelésének lehetősége, renderelés a fő szálon kívül, és teljesítményoptimalizáció régi és gyengébb eszközök számára. Jelenlegi formájában a "vulkan" motor teljesítménye közel áll a régi "gl" motor teljesítményéhez. Az "ngl" motor teljesítménye elmarad a régi "gl" motorétól, de a meglévő mutatók elegendőek 60 vagy 144 FPS sebességgel történő rendereléshez. Úgy vélik, hogy a helyzet a jövőbeli optimalizálások után változni fog.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster