Mellékleteink: HUP | Gamekapocs
Keres

Bemutatkozott az új OpenGL szabványcsalád

Gálffy Csaba, 2012. augusztus 08. 09:51
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

A Khronos Group bejelentette a nyílt grafikus szabványcsalád új verzióit, az alaposan átdolgozott mobilos OpenGL ES 3.0-t és a kisebb módosításokat kapott asztali API-t, a 4.3-as OpenGL-t. Az idén húsz éves grafikus API fejlődése töretlen, bár a Microsoft Direct3D képességeit továbbra is csak késéssel éri el.

Bemutatta az OpenGL nyílt grafikus API-k új generációját a Khronos Group az idei SIGGRAPH rendezvényen. A mobilos API, az OpenGL ES jelentős átalakuláson esett át és számos fejlett képességet kapott, a teljes verziós OpenGL pedig végre támogatja a compute shadereket is.

Mobilos szabvány

Az OpenGL ES mára a mobiliparban gyakorlatilag egyeduralkodóvá vált, ezt használja mindkét domináns operációs rendszer, az Android és az iOS is grafikus API-ként. Ahogy a két platform egyre fontosabbá vált a játékfejlesztők számára, úgy nőtt meg hirtelen az OpenGL ázsiója is a fejlesztők körében, okostelefonos vagy tabletes játékfejlesztés ma már elképzelhetetlen OpenGL használata nélkül. A mobilos terjedés hozadéka, hogy a fejlesztői eszközök ma már kiváló OpenGL támogatást nyújtanak, ami növeli a szabvány relevanciáját a nagyobb teljesítményű kliensek között is.

Az OpenGL ES 2.0 szabvány először 2007-ben jelent meg, a specifikáció úgy született, hogy az aktuális asztali szabványból kidobták az idejétmúlt illetve visszafelé kompatibilitásért szükséges részeket, egyszerűsítették az adattípusokat és a textúraformátumokat. Az első OpenGL ES 2.0-kompatibilis hardverek 2009-2010 folyamán jelentek meg és azóta a mobilpiac domináns szereplőinek számítanak.

Az új OpenGL ES 3.0 számos képességet az asztali verzió 3.0-s és 4.0-s verziójából vesz át. A shaderek programozási nyelve (GLSL ES) rugalmasabb lett, teljes mértékben támogatja a 32 bites lebegőpontos és egész műveleteket illetve adatokat. A textúrakezelés is változott, az OpenGL ES 3.0-t támogató GPU-k már komplexebb (például tetszőleges méretű) textúrákat is képesek kezelni. Megjelent a tömörített textúrák kezelése is, amely az Ericsson által kifejlesztett, nyílt tömörítési algoritmust használja. Az ETC2 és EAC tömörítés így ingyenesen, megkötések nélkül minden fejlesztő által elérhető.

ASTC: Jól tömörít.

Ez utóbbi egyébként a szabvány egyik gyenge pontjának számított, a mobileszközökön különösen érzékeny probléma lett egy idő után a tömörítés hiánya - a mobil GPU-k memóriasávszélessége illetve a memória mérete ugyanis rendkívül korlátozott, ez a tömörítés használatával részben megkerülhető lesz. A fejlesztők egyébként emiatt kénytelenek voltak előrefutni és nem-szabványos tömörítési algoritmusokat implementálni a játékaikban. A problémát az jelentette, hogy minden GPU-gyártó eltérő tömörítési algoritmusokat támogatott, így a játékokban ugyanazt a textúrát többféle formátumban is le kellett tárolni, ez a feltétlenül szükségesnél jóval nagyobb letöltéseket eredményezett. Az OpenGL ES 3.0 azonban előírja az ETC2 és az EAC támogatását, így az ezzel kompatibilis GPU-k egységesen célozhatóak fejlesztői szemszögből. A Khronos Group egyébként már előre gondolkodik, az ajánlott tömörítési eljárások listájára már felvették a fejlett ASTC algoritmust is, ez egyelőre azonban még nem a szabvány része.

A rajzolási képességekben is lépett előre az OpenGL ES 3.0, megjelent például az "instanced rendering", amellyel egy tárgy egy paranccsal többször is lerajzolható. Kimaradtak ugyanakkor a Direct3D 10-ben és az OpenGL 3.2-ben már elérhető geometrikus shaderek, amelyek például a tesszelációt teszik lehetővé.

Az OpenGL ES 3.0-t támogató GPU-k a testület szerint 2013 folyamán már elérhetővé válnak.

Asztali ráncfelvarrás

Az OpenGL 4.3 kisebb frissítésnek számít, így a változások egy része például az OpenGL ES 3.0 új képességeinek "felportolásából" áll, amely így továbbra is teljes mértékben kompatibilis marad a mobilos szabvánnyal. Az egyetlen nagy újdonságot a számoló shaderek (compute shader) jelentik, vagyis végre az OpenGL-t használó grafikus alkalmazások is használhatják a GPU-t általánosabb számítási feladatokra. A compute shaderek használata elsősorban grafikus alkalmazások (például játékok) alatt ajánlott, a teljesebb képességű OpenCL-hez viszonyítva a programozás egyszerűbb, és jobban integrálható a grafikus feladatokkal.

A teljesen általános számítási feladatokhoz természetesen továbbra is elérhető az OpenCL. A Khronos Group bejelentése szerint nekifognak egy széleskörű fejlesztésnek, amelynek célja a GLUT és a DXUT mintájára létrehozni az OpenCL-t használó általános programozási könyvtárat. A library neve CLU lesz.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.