Az OpenGL-ben az adott parancsok egy
feldolgozási pipeline-on (csõvezeték)
haladnak keresztül. A pipeline tartalmazza a megjelenítési
listát (display list), a vertexfeldolgozót
(per-vertex operations), pixelfeldolgozót
(pixel operations), raszterizálót
(rasterization), fragmensfeldolgozót
(per-fragment operations) és a képpuffert
(framebuffer). Minden fázis egy adott mûvelet elvégzésére
képes. Az OpenGL parancsok mindig a hívás sorrendjében
kerülnek feldolgozásra, bár elõfordulhat a parancs
végrehajtása elõtt egy bizonytalan idejû várakozás.
A parancsok elsõ lépésben a megjelenítési
listába kerülnek, amely egy FIFO rendszerû tároló,
amely a parancsokat a feldolgozásukig tárolja. Innen a parancsok
két irányba mehetnek tovább.
A geometriai primitívekre vonatkozó
parancsok a vertexfeldolgozóba kerülnek. Itt történnek
a geometriai transzformációk, amelyek kiszámítják,
hogy adott irányból nézve hol van a vertex képe.
Itt történik még az egyenese és a sokszögek
vágása is, melynek során az OpenGL levágja
azokat a részeket, amelyek kiesnek a látótérbõl.
A fázis utolsó mûvelete a vetítés.
Azok a parancsok, amelyek a raszterképekre
és bittérképekre vonatkoznak, a pixelfeldolgozóba
kerülnek.
Ezután az adatok mindkét egységbõl
a raszterizáló egységbe kerülnek, amely a primitíveket
fragmensekre bontja. A fragmensek pixelek, és hozzájuk tartozó
adatok, melyek a képpufferben a primitívek képét
adják. Egy pont egyetlen fragmensbõl áll, mely tartalmazza
a pont képének koordinátáit, színét
és távolságát. A szakaszok annyi fragmensbõl
állnak, ahány pixel elõállítja a szakasz
képét a képpufferben. A sokszögek a szakaszokhoz
hasonlóan több fragmensbõl állnak. A primitíveknél
csak a vertexek távolsága, színe, fényessége
és egyéb adatai ismertek; a fragmensekre bontás során
a fragmensekre vonatkozó adatokat minden fragmensre meg kell határozni,
amely elég bonyolult feladat.
A végsõ fázisban az elkészült
fragmensekbõl a fragmensfeldolgozó hozza létre a képpufferben
a képet, de elõtte minden fragmens tesztelésre kerül,
amikor is eldõl, hogy az adott fragmens közelebb vagy távolabb
van-e annál a fragmensnél, ami a képpufferben ugyanott
van. A képpuffer csak akkor frissítõdik, ha az új
fragmens közelebb van a megfigyelõhöz, mint az eredeti
fragmens.