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.

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