Vertex specifikáció

- A glVertex parancs
- A glTexCoord parancs
- A glNormal parancs
- A glColor parancs
- A glIndex parancs

A vertexek (csúcspontok) az OpenGL alapelemei. Vertexek lehetnek pontok, szakaszok végpontjai, illetve polygonok csúcsai. Minden geometriai primitívet vertexek rendezett sorozataként tudunk specifikálni. Az OpenGL minden vertexet homogén vertexként tárol, így azokat 4 lebegõpontos számmal reprezentálja, amely a vertex négy koordinátája. A negyedik, w koordináta általában imlicit 1.0. Ha a vertexek koordinátáit kiegészítjük ezzel a plusz koordinátával, akkor lehetõvé válik, hogy minden lineáris transzformációt (eltolás, forgatás, skálázás) mátrixszorzásokkal végezzünk el. Mivel a mátrixszorzás asszociatív, így egyetlen mátrixszorzással akár bonyolult transzformációkat is el tudunk végezni. Mivel minden vertexhez( és az OpenGL-ben csak vertexekhez) színt, koordinátákat, normált és textúra-koordinátákat rendelhetünk, ezért a vertexeket struktúraként is fel lehet fogni.

A glVertex parancs

Vertexeket úgy specifikálhatunk, ha megadjuk a koordinátáit 2, 3 vagy 4 dimenzióban. Ez a specifikáció a

void glVertex{234}{sifd}( T coords );
void glVertex{234}{sifd}v( T coords );

parancsokkal lehetséges. Bármely glVertex parancs négy koordinátát specifikál: az x, y, z és w koordinátákat. A glVertex2 parancs például beállítja az x és y koordinátákat, a z koordinátát 0-ra, a w koordinátát pedig 1-re állítja. A glVertex4 egy ideális pontot specifikál a projektív térben.

pl.: a glVertex2f(0.5, 0.5) parancs egy 2-dimenziós vertexet specifikál a (0.5, 0.5) koordinátákban
a glVertex3i(10, 10, 10) parancs egy 3-dimenziós vertexet specifikál a (10, 10, 10) koordinátákban

egy vertex specifikálása ( glVertex3d(50,50,0))

A glTexCoord parancs

A

void glTexCoord{1234}{sifd}( T coords );
void glTexCoord{1234}{sifd}v ( T coords );

a homogén textúra koordinátákat állítja be, névszerint az s, t, r és q koordinátákat. A glTexCoord1 parancs az s koordinátát állítja be a meghívott értékre, a t és r koordinátákat 0-ra, q-t pedig 1-re állítja. A glTexCoord4 mind a négy koordinátát beállítja. Mint a neve is mutatja a glTexCoord parancs a textúra koordinátákat állítja be.

A glNormal parancs

Az érvényes normálist a

void glNormal3{bsifd}( T coords );
void glNormal3{bsifd}v ( T coords );

parancsokkal specifikálhatjuk. Az érvényes normálisok a fényszámításokban, az árnyékolásban, illetve a látható felszín meghatározásában vesznek részt. Mivel minden normális egy 3 dimenziós vektor, ezért a glNormal parancsnak csak egy változata van.

pl.: a glNormal3f(1.0f, 0.0f, 0.0f) egy normális specifikációja

A glColor parancs

Az OpenGL-ben kétféle szín mód használatára van lehetõség. Az egyik az RGB, vagy RGBA szín mód, a másik az indexelt szín mód. Az elsõben minden színt 3 vagy 4 komponens határoz meg. R: vörös, G: zöld, B: kék, A: alpha komponens. Az indexelt szín módban minden színt egy lebegõpontos érték ír le, és minden ilyen értékhez meg van határozva a memóriában három 8 bites komponens. Az RGBA színeket a

void glColor{34}{bsifd ubusui}( T components );
void glColor{34}{bsifd ubusui}v( T components );

eljárásokkal állíthatjuk be. A glColor4 az RGBA szín mind a négy komponensét beállítja; a glColor3 az R, G és B komponenseket specifikálja, az A pedig implicit 0.0. A glColor eljárás lebegõpontos értékeket vár 0.0 és 1.0 között, ezen kívül esõ értékeket nem fogad el. 0.0 a minimum, 1.0 pedig a maximum értéknek felel meg.

pl.: a glColor3d(1.0, 0.0, 0.0) a tiszta piros színt specifikálja
a glColor3d(0.5, 0.5, 0.5) a szürke egy árnyalata

A glIndex parancs

Az érvényes szín indexet a

void glIndex{sifd ub}( T index );
void glIndex{sifd ub}v ( T index );

eljárásokkal állíthatjuk be. A szín index határok gépfüggõek; az eljárás a határon belül esõ értékeket fogadja el, azon kívül esõ értékeket nem.

pl.: glIndexd(0.5);

->következõ oldal
<- elõzõ oldal
<-- fõoldal