Nagy dobás az új OpenGL API

Az elmúlt évek alatt megszokhattuk már, hogy a Khronos Group jellemzően az aktuális SIGGRAPH rendezvénnyel párhuzamosan jelenti be az új OpenGL-t. Ez most sincs másképp, így bemutatkozott az API 4.3-as verziója, mely a specifikációk alapján nagy dobásnak ígérkezik. A friss felület természetesen új kiterjesztéseket vezet be, és főleg azokra a területekre koncentrál, ahol a DirectX az elmúlt években elhúzott. A rendszer természetesen visszafelé is kompatibilis, ami az OpenGL egyik alappillére. Ennél azonban a Khronos Group tovább is ment, hiszen az OpenGL 4.3 az OpenGL ES 3.0 tökéletes kiterjesztése, vagyis a fejlesztők rendkívül egyszerűen portolhatják át a mobil alkalmazásokat PC-re. Némi módosítás természetesen szükséges, de a befektetett munka nagyon kevés lesz.

Hirdetés

Az újítások között elsőként kell megemlíteni, hogy az OpenGL 4.3 végre támogatja a compute shadert. Ezt a DirectX 11 vezette be, és a fejlesztők a DirectCompute API-n keresztül érhették el. A Microsoft erre tudatosan épített, így a DirectCompute kihasználása a DirectX-en keresztül nagyon könnyű volt. Az OpenGL esetében más helyzet állt elő. A grafikus processzorok általános számítási teljesítménye hatékonyan csak OpenCL-en keresztül volt kihasználható. Technikailag ez nem gond, de az OpenGL és az OpenCL interop rendkívül körülményes ahhoz képest, hogy a Microsoft mennyire egyszerű megoldást kínált fel ugyanerre a problémára. A Khronos Group természetesen látja az igényt a compute shaderre, így az új OpenGL be is vezet egy GL_ARB_compute_shader kiterjesztést, mellyel egyszerűbben használhatják ki a fejlesztők az új GPU-k általános számítási kapacitását és hatékonyságát. A funkcionalitás megegyezik a DirectX 11 és a DirectCompute 5.0 párosával, így ebből a szempontból nem lehet probléma.


[+]

A másik jelentős újítás az új textúratömörítési formátumok bevezetése. Ezek között szerepet az OpenGL ES 3.0-ban is bevetett ETC2 és AEC. Ez szintén jelentős mérföldkő, ugyanis a fejlesztők mobil programokhoz készített tartalmai megfelelnek a PC-s programokhoz is. Hatalmas előny lehet a WebGL mellett is a közös textúratömörítési formátum, hiszen a webet minden termék egységesen éri el, vagyis mindenképpen szükséges egy olyan szabvány, amit az összes hardver támogat. Mindezek mellett a Khronos Group dolgozik az ASTC, azaz Adaptive Scalable Texture Compression névre hallgató textúratömörítési formátumon is, mely az ARM és az NVIDIA közös fejlesztése, és szabadon elérhető bárki számára. Persze a mai hardverek még nem támogatják az ASTC-t, így egyelőre egy opcionálisan elérhető kiterjesztés formájában került a rendszerbe, de az LDR verzió már hasznosítható, és a HDR fejlesztés alatt áll.


[+]

Az ASTC a képességei alapján nagy jövő előtt állhat, hiszen technikailag jobb minőséget kínál a széles körben elterjedt S3TC-nél. Utóbbival a minőség szempontjából nincs gond, de ahogy az OpenGL ES 3.0-t részletező hírünkben írtuk, nem lehet szabvány, mivel a formátum HTC tulajdona, és a Khronos Group sosem licencel olyan technikát, amiért fizetni kell. Az ASTC az eddig felvetett legjobb alternatíva az S3TC-re, így kellő támogatás mellett elterjedhet.

Természetesen a textúratömörítési formátumok esetében fontos megjegyezni, hogy attól, hogy a program fut egy adott hardveren, még nem biztos, hogy a hardver támogatja a formátumot. A driver oldaláról megoldható, hogy a hardver által nem támogatott textúratömörítési formátumot a rendszer előbb kitömörítse, majd a tömörítetlen adatot elküldje a grafikus processzorhoz, ami így azt már képes azt kezelni. Az ultramobil termékek piacán ez nem járható út, de a PC-s termékek jóval erősebbek, így ebből nem lesz gond, noha bizonyos, hogy az új hardverekbe érdemes beépíteni a direkt támogatást.

Az OpenGL 4.3-ban még általánosan fejlődött a puffer- és a textúramenedzsment. Előbbi lehetővé teszi a futószalag programozható részeinek, hogy a korábbinál nagyobb mennyiségű adattal dolgozzanak. Javult a debugolás is, ami természetesen a fejlesztők munkáját könnyítheti meg. Ez főleg a compute shader miatt fontos, mivel ezek a programok jellemzően eléggé bonyolultak lehetnek.

Az OpenGL 4.3 részletes specifikációja az alábbi fájlban olvasható. Az API-t az összes DirectX 11-et támogató grafikus vezérlő képes támogatni. Az NVIDIA már bejelentette, hogy a fejlesztők elérhetnek egy drivert az OpenGL 4.3 előzetes támogatásával.

Hirdetés

Fotóznál vagy videóznál? Mutatjuk, melyik okostelefon mire való igazán!

PR Vásárlás előtt érdemes megnézni, mit kínálnak az aktuális telefonok, ha igazán ütős képeket vagy profi mozgóképeket szeretnénk készíteni.

Azóta történt

Előzmények