>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Flat shading
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Zde vysvětlím jednoduché stínování objektů (žádný gouraud nebo
phong). Je založeno na myšlence, že na polygon dopadá tím méně
světla, čím větší úhel svírá jeho normálový vektor s vektorem
světelného zdroje. Je třeba nastavit paletu na určitý počet odstínů
nějaké barvy (NC), ve které chcete mít objekt vyveden.
Před vykreslením polygonu spočítáte cosínus úhlu mezi normálem a
vektorem světla, vyjde vám něco v intervalu od 0 do 1. To vynásobíte
počtem odstínů barev.
Dostanete barvu, jakou bude polygon vybarven. Takže když to vrznu do
vzorce :
barva = ( (v_sz dot n_p) / (|_sz|*|n_p|) ) * NC + barevny_posuv
kde: v_sz je vektor světelného zdroje
n_p je normálový vektor polygonu
NC je počet odstínů
barevný_posuv mění světlost objektu (prostě se nevezme 0 (černá)
ale třeba 15, což bude tmavě šedá, jasan ?)
Pozn : počet odstínů je občas dobré volit tak, aby se místo násobení
dal použít shift... (tzn. treba 16,32 a tak ...)
výheň