Lekce 3

Lekce 3 - Barvy

S jednoduch²m rozÜφ°enφm znalostφ ze druhΘ lekce budete moci pou₧φvat barvy. NauΦφte se jak plochΘ vybarvovßnφ, tak i barevnΘ p°echody. Barvy rozzß°φ vzhled aplikace a tφm spφÜe zaujmou divßka.

int DrawGLScene(GLvoid)// Vykreslovßnφ

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// Vyma₧e obrazovku a hloubkov² buffer

glLoadIdentity();// Reset matice

glTranslatef(-1.5f,0.0f,-6.0f);// Posun doleva a do hloubky

glBegin(GL_TRIANGLES);// ZaΦßtek kreslenφ troj·helnφk∙

Z minulΘ lekci si pamatujete, ₧e jsme kreslili troj·helnφk na levou Φßst obrazovky - to z∙stßvß. DalÜφ °ßdek bude naÜe prvnφ pou₧itφ p°φkazu glColor3f(r,g,b). Parametry v zßvorkßch jsou intenzita ΦervenΘ, zelenΘ a modrΘ barvy. Mohou nab²vat hodnot od 0 do 1. Pracujφ stejn²m zp∙sobem jako u funkce pro barvu pozadφ glClearColor(r, g, b, 1.0f). Nastavujeme barvu na Φistou Φervenou (₧ßdnß zelenß a modrß). S pou₧itφm tΘto barvy vykreslφme prvnφ vrchol troj·helnφku. Dokud nezm∞nφme barvu, bude mφt vÜe, co nakreslφme Φervenou barvu.

glColor3f(1.0f, 0.0f, 0.0f);// ╚ervenß barva

glVertex3f(0.0f, 1.0f, 0.0f);// Hornφ bod

Mßme umφst∞n prvnφ bod. Te∩ ne₧ umφstφme druh² bod, ale p°edtφm zm∞nφme barvu na zelenou.

glColor3f(0.0f, 1.0f, 0.0f);// Zelenß barva

glVertex3f(-1.0f, -1.0f, 0.0f);// Lev² dolnφ bod

Prav² dolnφ bod bude modr². Jakmile provedeme p°φkaz glEnd(), vybarvφ se troj·helnφk. Ale proto₧e mß v ka₧dΘm vrcholu jinou barvu, budou se barvy Üφ°it z ka₧dΘho rohu a nakonec se setkajφ uprost°ed, kde se smφsφ dohromady.

glColor3f(0.0f, 0.0f, 1.0f);// Modrß barva

glVertex3f(1.0f, -1.0f, 0.0f);// Prav² dolnφ bod

glEnd();// UkonΦenφ kreslenφ troj·helnφk∙

Vykreslφme Φtverec vypln∞n² modrou barvou. Je d∙le₧itΘ zapamatovat si, ₧e cokoli nakreslφme po nastavenφ barvy, bude vykresleno touto barvou. Ka₧d² projekt, kter² vytvß°φte pou₧φvß n∞jak² zp∙sob vybarvovßnφ. Dokonce i ve scΘnßch, kde je vÜe kresleno pomocφ textur, m∙₧e b²t funkce glColor3f() pou₧ita k dodßnφ nßdechu po₧adovanΘ barvy.

glTranslatef(3.0f,0.0f,0.0f);// Posun o 3 jednotky doprava

glColor3f(0.5f,0.5f,1.0f);// Sv∞tle modrß barva

glBegin(GL_QUADS);// ZaΦßtek kreslenφ obdΘlnφk∙

glVertex3f(-1.0f, 1.0f, 0.0f);// Lev² hornφ bod

glVertex3f( 1.0f, 1.0f, 0.0f);// Prav² hornφ bod

glVertex3f( 1.0f,-1.0f, 0.0f);// Prav² dolnφ bod

glVertex3f(-1.0f,-1.0f, 0.0f);// Lev² dolnφ bod

glEnd();// Konec kreslenφ obdΘlnφk∙

return TRUE;// UkonΦenφ funkce

}

V tomto tutorißlu jsem se sna₧il vysv∞tlit co nejvφce podrobnostφ o jednobarevnΘm a p°echodovΘm vybarvovßnφ mnoho·helnφk∙. Pohrajte si s tφmto k≤dem, zkuste zm∞nit hodnoty ΦervenΘ, zelenΘ a modrΘ na jinß Φφsla. Podφvejte se co se stane.

napsal: Jeff Molofee - NeHe
p°elo₧il: Milan Turek

ZdrojovΘ k≤dy

Lekce 3

<<< Lekce 2 | Lekce 4 >>>