Az OpenGL-t (akkor még IrisGl) a Silicon
Graphics (SGI) nevû amerikai cég fejlesztette ki, eredetileg
saját grafikus munkaállomásainak programozására.
Ezek a munkaállomások nagyon gyors grafikus célhardverek
voltak, amelyek ultragyorsan végeztek olyan mûveleteket, amelyek
szükségesek a grafikai számításokban,
így a Silicon Graphics számítógépek
rendkívül gyorsan végeztek például mátrixtranszformációkat.
Azért, hogy a programokat más rendszerekre is át lehessen
vinni, az SGI átdefiniálta az IrisGl-t, és az OpenGL
nevet adta neki. Az egyik legfontosabb szempont az OpenGL kifejlesztésénél
a hordozhatóság volt, ezért az OpenGL, az IrisGl-el
szemben más rendszerek felé is nyitott (OpenGL = Open Graphics
Library). Az elsõ OpenGL specifikációt 1992 júl.
1-én mutatták be. Öt nappal késõbb, a
legelsõ Win32 fejlesztõi konferencián az SGI az OpenGL
mûködését egy Iris Indigo gépen demonstrálta
több grafikus alkalmazáson keresztül, mint pl. orvosi
képfeldolgozó rendszerek, ill. részletek a Terminator
2 címû filmbõl. Ezután az SGI és a Microsoft
együtt fejlesztették tovább az OpenGL-t.
Az OpenGL egy szoftver interfész a grafikus
hardverhez. Ez a szoftver interfész pár száz eljárásból
és függvénybõl áll, melyek lehetõvé
teszik 2 és 3 dimenziós grafikai objektumok létrehozását,
és ezeken az objektumokon mûveletek elvégzését.
Az OpenGL tehát egy eljárás- és függvénygyûjtemény,
melyek 2 és 3 dimenziós geometriai objektumok specifikációját
tartalmazzák; ezenkívül olyan eszközöket is
nyújt, melyekkel szabályozni lehet ezen objektumok leképezését
a képpufferbe, amelyben az OpenGL az eredményként
létrejövõ képet tárolja. Ennek megjelenítése
már az operációs rendszer, vagy az ahhoz tartozó
ablakozó rendszer feladata. Itt elérkeztünk egy
fontos dologhoz: az OpenGL nem tartalmaz ablakozó
rendszert, és nem támogatja
az input eszközök kezelését sem,
tehát ezeket a dolgokat az adott nyelven a programozónak
kell megoldania (késõbb majd látni fogjuk, hogy azért
mégsem ennyire rossz a helyzet).
A Unix-os (Linux-os) OpenGL rendszerek grafikus
felülete többnyire az X-Window, amely tartalmazza az ablakozást.
Windows 95, 98 és NT esetén maga az operációs
rendszer szolgáltatja a grafikus felületet. Az OpenGL platformfüggetlenségét
az adatbeviteli és megjelenítési rendszertõl
való függetlenség biztosítja. Ugyanezen okok
miatt az OpenGL nem tartalmaz olyan parancsokat sem, amelyek magasszintû
háromdimenziós objektumok specifikálására
szolgálnak, így ezeket a modelleket geometriai primitívekbõl
kell felépíteni (vonalak, pontok, sokszögek).
Az OpenGL az ügyfél-kiszolgáló
(kliens-szerver) felépítést követi. Ezáltal
lehetõvé válik, hogy a grafikus alkalmazást
futtató, és a végeredményt létrehozó
gép egyazon, vagy két különbözõ gép
legyen. A grafikus alkalmazás - mint ügyfél - parancsokat
ad az OpenGL kiszolgálónak, amely létrehozza a képet.
Mivel a parancsok átadására szabványos protokollt
dolgoztak ki, ezért az ügyfél és a kiszolgáló
gépek különbözõ típusúak is
lehetnek.