V poslednej časti sme si ukázali, ako zobraziť nejaký ten trojuholník a štvorec na obrazovku. V dnešnej časti si ukážeme, ako použiť 2 rôzne spôsoby farbenia pre trojuholník a štvorec. Flat coloring vyfarbí štvorec jednou jedinou farbou a smooth coloring spraví farebné prechody medzi 3 farbami, každý roh trojuholníka bude mať inú farbu a vytvorí prechody medzi tými farbami.
Použijeme zdroják z minulej časti a zmeníme funkciu DrawGLScene.
int DrawGLScene(GLvoid) // tu kreslíme
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// vyčistíme obrazovku a depth buffer
glLoadIdentity(); // Resetneme Modelview Matrix
glTranslatef(-1.5f,0.0f,-6.0f); // doľava 1.5, 6 dozadu
glBegin(GL_TRIANGLES); // kresli trojuholníky
V minulej časti sme nakreslili ten trojuholník. Teraz však ešte pridáme funkciu glColor3f(r,g,b). Tri parametre znamenajú pomer farieb, r,g,b. Red, Green, Blue. Hodnoty sú od 0.0 do 1.0. Presne také isté, ako keď mažeme obrazovku.
glColor3f(1.0f,0.0f,0.0f); // nastavíme červenú
glVertex3f( 0.0f, 1.0f, 0.0f); // nakreslíme vrch
glColor3f(0.0f,1.0f,0.0f); // nastavíme zelenú
glVertex3f(-1.0f,-1.0f, 0.0f); // ľavý dolný
glColor3f(0.0f,0.0f,1.0f); // modrá
glVertex3f( 1.0f,-1.0f, 0.0f); // vpravo dole
glEnd();
glTranslatef(3.0f,0.0f,0.0f); // doprava o tri
A teraz nakreslíme modrý štvorec. glColor3f môže byť použitá aj pri textúrach, atď.
glColor3f(0.5f,0.5f,1.0f); // natavíme modrú
glBegin(GL_QUADS); // štvorce
glVertex3f(-1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f, 1.0f, 0.0f);
glVertex3f( 1.0f,-1.0f, 0.0f);
glVertex3f(-1.0f,-1.0f, 0.0f);
glEnd();
return TRUE;
}
To je zatiaľ všetko, čo sa týka farieb. Vyskúšajte si rôzne farby, alebo skúste spraviť nejaké dúhové farbenie, prípadne cyklenie farieb, atď.
Samozrejme zdroják je tu…
http://www.softsklad.host.sk/opengl/lesson03.zip