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.

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.

Azóta történt

Előzmények

Hirdetés