C/C++ FAQ

Jaki kolor ... [OpenGL]

Essair

glColor3f

void glColor3f(GLfloat R, GLfloat G, GLfloat B);

Argumenty funkcji są typu float. Reprezentują one odpowiednio składową czerwoną (red), zieloną (green) oraz niebieską (blue).

glColor3f( 1.0f, 1.0f, 1.0f ); -  biały
glColor3f( 0.0f, 0.0f, 0.0f );  // czarny
glColor3f( 1.0f, 0.0f, 0.0f );  // czerwony
glColor3f( 0.0f, 1.0f, 0.0f );  // zielony
glColor3f( 0.0f, 0.0f, 1.0f );  // niebieski
glColor3f( 1.0f, 1.0f, 0.0f );  // żółty
glColor3f( 1.0f, 0.0f, 1.0f );  // fiolet 

glColor3ub

void glColor3ub(GLubyte red, GLubyte green, GLubyte blue);

Niektórym do gustu może przypaść ta funkcja. Jej argumenty są typu unsigned byte.

glColor3ub( 255,   0,   0);  // czerwony
glColor3ub(   0, 255,   0);  // zielony
glColor3ub(   0,   0, 255);  // niebieski
glColor3ub( 255, 255,   0);  // żółty
FAQ

3 komentarzy

To nie jest funkcja rysująca! To funkcja, która ustawia aktywny kolor, jeśli teksturowanie jest wyłączone to taki kolor będą miały wszystkie wierzchołki (a potem figury) rysowane dopóki nie zmieni się koloru, a jak są włączone tekstury to np. glColor3f(1,0,0); zabarwi wszystko na czerwono taki fajny trik, żeby było wszystko normalnie to trzeba ustawić biały, ale od kiedy glColor3f coś rysuje? :| Wymiękłem jak to przeczytałem :P normalnie ROTFL. Nie lepiej też było wspomnieć że funkcja ma 3 parametry R,G,B które stanowią składowe koloru w zakresie od 0 (brak) do 1 (pełne nasycenie)? Do tego występuje teź glColor4f która jako czwarty parametr ma kanał Alpha także z zakresu od 0 (nie widać) do 1 (widać całość) :P

Sheitar spójrz na wiek tego kolesia. Niezle.

Zgadzam się z Sheitarem, chociaż nikt nigdzie nie napisał, że ta funkcja ma coś rysować. Ale rzeczywiście należałoby wspomnieć, dlaczego gdy np. podamy jako pierwszy parametr wartość 1.0f a do pozostałych 0.0f to otrzymujemy kolor czerwony itp.