Egy számítógép képernyõjére
rajzolás nem egyezik meg egy rajzlapra rajzolással, ahol
a rajzlap fehér, és csak egyetlen dolgunk van, mégpedig
az, hogy rajzoljunk. A számítógép memóriája
azt a képet tárolja, amelyet utoljára rajzoltunk,
így egy új kép megrajzolása elõtt a
képet törölnünk kell a háttérszínnel.
A háttérszín, amellyel a hátteret töröljük,
az alkalmazástól függ. Ezt a mûveletet elvégezhetnénk
úgy is, hogy egy háttérszínû, megfelelõen
nagy téglalapot rajzolunk a képernyõre. Azonban, mivel
az OpenGL-ben lehetõség van a koordináta-rendszer,
a szem pozíció és irány beállítására,
így ezen téglalap méreteinek kiszámítása
nem is olyan egyszerû. Ráadásul a legtöbb számítógép
grafikus hardvere több pufferrel rendelkezik azon felül ami a
megjelenítendõ kép pixeleinek színét
tárolja, így kényelmes egy olyan paranccsal rendelkezni,
amely bármelyiket tudja törölni törölni.
A grafikus hardverben a pixelek színei ún.
bitplane-ekként tárolódnak. A tárolásnak
két módja van. Az egyik az, hogy a pixel színének
mind a négy komponense eltárolódik (vörös,
zöld, kék, alpha), vagy csak egy szín index érték
tárolódik. Többnyire az elsõ módszert
alkalmazzuk.
Az aktuális törlõ
színt, amelyet az RGBA módban a szín pufferek törlésére
alkalmazunk a
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
paranccsal állíthatjuk be. Az alapértelmezett törlõ
szín a (0, 0, 0, 0).
A pufferek tartalmát a
void glClear(GLbitfield mask);
paranccsal törölhetjük. A mask argumentum egy bitenkénti vagy kombinációja a GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_STENCIL_BUFFER_BIT és GL_ACCUM_BUFFER_BIT szimbolikus konstansoknak.
pl.: a glClearColor(1.0,
1.0, 1.0, 1.0);
.
.
.
glClear(GL_COLOR_BUFFER_BIT);
kódrészlet beállítja a törlõ színt fehérre, majd törli vele a szín puffert.
a glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
parancs hatása megegyezik a
glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_DEPTH_BUFFER_BIT);
parancsok hatásával; egy különbség van, az elsõ gyorsabb...