OpenGL

Az OpenGL nevű ismert grafikus API komoly múltra tekint vissza. A felület első verzióját a Silicon Graphics (SGI) fejlesztett ki még 1992-ben. Az alapok a vállalat IrisGL API-jára épültek. A szabványosítással egyetemben megalakult az OpenGL Architectural Review Board (ARB), mely a rendszer fejlesztéséért felelt. 2006-ban a nyílt ipari szabványnak tekinthető felület fejlesztése felett a Khronos Group vette át a kontrollt.

Az OpenGL 1.0-s verzióját Mark Segal és Kurt Akeley adta ki 1992-ben. Ez definiálta azokat az alapvető funkciókat, amelyeket a grafikus processzoroknak támogatniuk kellett az OpenGL-lel való kompatibilitáshoz, illetve specifikálta a kiterjesztésekre vonatkozó rendszert, ezzel biztosítva a gyártóknak a lehetőséget, hogy egyéni képességekkel egészítsék ki az API-t. Az asztali és munkaállomásokba szánt grafikus vezérlőkhöz szánt felület, az akkori hardvereknek megfelelően a fixfunkciós feldolgozáshoz igazodott. Öt évvel később mutatkozott be az OpenGL 1.1 alapvető kiegészítéseket hozva magával. Valamivel több mint egy évvel később megérkezett az OpenGL 1.2 is, ami bevezette a 3D-s textúrázást, valamint különböző funkciókat a képfeldolgozó alkalmazásokhoz. Ezt hét hónappal később követte az OpenGL 1.2.1, ahol egy kiterjesztés formájában elérhetővé vált a multitextúrázás.

Hirdetés

Az OpenGL 1.3 2001-ben jelent meg és bevezette a textúratömörítés és az MSAA támogatását. Egy évvel később az OpenGL 1.4 textúrázással és árnyékolással kapcsolatos új funkciókat hozott. Szintén egy év elteltével már az OpenGL 1.5 is bemutatkozott, és bevezette a VBO-t (Vertex Buffer Objects), az occlusion query-t, továbbá az OpenGL Architectural Review Board egy kiterjesztésben specifikálta a GLSL-t (OpenGL Shading Language), amivel a fejlesztők programozhatták a grafikus processzorokba épített shader processzorokat.

Az OpenGL 2.0 nagy lépés volt az API történelmében. A felületet fejlesztésében a 3Dlabs vezető szerepet vállalt, mivel az OpenGL vezető támogatói aggódni kezdtek amiatt, hogy a rendszer rossz irányba tart, hiszen akkoriban tömegesen álltak át a fejlesztők a DirectX-re. A 2.0-s specifikáció előnye, hogy a GLSL támogatását kötelezővé tette, továbbá bevezetésre került egy C-szerű nyelv a GLSL-hez, amivel a fejlesztők egyszerűen írhattak shader programokat. Az OpenGL 2.1 2006-ban mutatkozott be, és a GLSL-t fejlesztette tovább az 1.20-as verzióra.

Ekkortájt az OpenGL története legnagyobb válságát élte át, mivel az agresszív fejlesztési tempó mellett is a DirectX dominált. A piaci viszonyok értékelése után a felület fejlesztését a Khronos Group vette át, és elkezdődött a Longs Peak kódnevű projekt kálváriája. Utóbbi az API nagymértékű reformját hirdette az objektumkreálás jelentős átdolgozásával. A tervek azonban nem valósultak meg, ráadásul az API fejlesztése is jelentősen csúszott.

Az OpenGL 3.0 2008-ban mutatkozott be, és inkább ráncfelvarrásnak tűnt, vagyis a beígért reform elmaradt. Alapvető változás, hogy a Khronos Group bizonyos funkciókat elavultnak minősített, így azokat csak az úgynevezett full context módban lehetett elérni. Jelentős újítás volt, hogy a GLSL továbbfejlődött, így az 1.30-as verzió végre támogatta a legújabb hardverek képességeit. Az OpenGL 3.1 fél évvel később futott be és az elavult funkciókat konkrétan eltörölte. Az OpenGL 3.2 szintén fél év múlva debütált, és visszahelyezte a kitörölt funkciókat. Ezzel együtt két külön profilt specifikált, vagyis a fő fejlesztési irány az újításokra fókuszált, míg a kompatibilitásra kihegyezett opcióval az elavult funkciók is elérhetők voltak. Jelentős újítás volt még a geoimetry shader támogatásának bevezetése. Az OpenGL 3.3 2010-ben jelent meg, és alapvetően bevezette azokat az eddig kimaradt funkciókat, amelyeket a DirectX 10-ben debütáltak.

Az OpenGL 4.0 az OpenGL 3.3-mal együtt érkezett és elérhetővé tette a fixfunkciós tesszellátorok kihasználását. Az OpenGL 4.1 három hónappal később jelent meg és teljes kompatibilitást biztosított az OpenGL ES 2.0-s felülettel, továbbá némi fejlesztésen esett át a GLSL is. Az OpenGL 4.2 2011-ben rajtolt, a legfőbb újítása pedig az atomi műveletek támogatása volt. Az OpenGL 4.3 egy évvel később született meg, és számottevő változásokat hozott, többek között bevezette a compute shader támogatását, teljesen kompatibilis volt az OpenGL ES 3.0-s API-val, valamint szabványban írta elő az ETC textúratömörítési formátum támogatása az ETC2 és az EAC kiegészítések mellett. Ezenkívül kapott egy fejlett debug lehetőséget, hogy a fejlesztőknek egyszerűbb legyen a compute shader kódok működését elemezni.

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.