This shows you the differences between two versions of the page.
egc:laboratoare:07 [2022/11/18 17:47] andrei.lambru |
egc:laboratoare:07 [2022/11/22 09:38] (current) andrei.lambru |
||
---|---|---|---|
Line 23: | Line 23: | ||
<code glsl> | <code glsl> | ||
- | vec3 culoare = emisiva + ambientala + difuza + speculara; # GLSL | + | culoare = emisiva + ambientala + difuza + speculara; # GLSL |
</code> | </code> | ||
Line 34: | Line 34: | ||
Avem astfel: | Avem astfel: | ||
<code glsl> | <code glsl> | ||
- | vec3 emisiva = Ke; # GLSL | + | emisiva = Ke; # GLSL |
</code> | </code> | ||
<note tip> | <note tip> | ||
Line 53: | Line 53: | ||
<code glsl> | <code glsl> | ||
- | vec3 ambientala = Ka * culoareAmbientalaGlobala; # GLSL | + | ambientala = Ka * culoareAmbientalaGlobala; # GLSL |
</code> | </code> | ||
Line 72: | Line 72: | ||
$difuza = K_d \cdot culoareLumina \cdot max(\vec{N}\cdot \vec{L}, 0)$ | $difuza = K_d \cdot culoareLumina \cdot max(\vec{N}\cdot \vec{L}, 0)$ | ||
<code glsl> | <code glsl> | ||
- | vec3 difuza = Kd * culoareLumina * max (dot(N,L), 0); # GLSL | + | difuza = Kd * culoareLumina * max (dot(N,L), 0); # GLSL |
</code> | </code> | ||
<note tip> | <note tip> | ||
Line 105: | Line 105: | ||
$speculara = K_s \cdot culoareLumina \cdot primesteLumina \cdot (max(\vec{V}\cdot \vec{R}, 0))^n$ | $speculara = K_s \cdot culoareLumina \cdot primesteLumina \cdot (max(\vec{V}\cdot \vec{R}, 0))^n$ | ||
<code glsl> | <code glsl> | ||
- | vec3 speculara = Ks * culoareLumina * primesteLumina * pow(max(dot(V, R), 0), n) # GLSL | + | speculara = Ks * culoareLumina * primesteLumina * pow(max(dot(V, R), 0), n) # GLSL |
</code> | </code> | ||
Line 134: | Line 134: | ||
$speculara = K_s \cdot culoareLumina \cdot primesteLumina \cdot (max(\vec{N}\cdot \vec{H}, 0)^n $ | $speculara = K_s \cdot culoareLumina \cdot primesteLumina \cdot (max(\vec{N}\cdot \vec{H}, 0)^n $ | ||
<code glsl> | <code glsl> | ||
- | vec3 speculara = Ks * culoareLumina * primesteLumina * pow(max(dot(N, H), 0), n) # GLSL | + | speculara = Ks * culoareLumina * primesteLumina * pow(max(dot(N, H), 0), n) # GLSL |
</code> | </code> | ||
Line 141: | Line 141: | ||
Atunci când sursa de lumină punctiformă este suficient de îndepărtată de obiectele scenei vizualizate, vectorul $\vec{L}$ este același în orice punct. Sursa de lumină este numită în acest caz direcțională. Aplicând modelul pentru vizualizarea a două suprafețe paralele construite din același material, se va obține o aceeași intensitate (unghiul dintre $\vec{L}$ și normală este același pentru cele două suprafețe). Dacă proiecțiile suprafețelor se suprapun în imagine, atunci ele nu se vor distinge. Această situație apare deoarece în model nu se ține cont de faptul că intensitatea luminii descrește proporțional cu inversul pătratului distanței de la sursa de lumină la obiect. Deci, obiectele mai îndepărtate de sursă sunt mai slab luminate. O posibilă corecție a modelului, care poate fi aplicată pentru surse poziționale (la distanță finită de scenă) este: | Atunci când sursa de lumină punctiformă este suficient de îndepărtată de obiectele scenei vizualizate, vectorul $\vec{L}$ este același în orice punct. Sursa de lumină este numită în acest caz direcțională. Aplicând modelul pentru vizualizarea a două suprafețe paralele construite din același material, se va obține o aceeași intensitate (unghiul dintre $\vec{L}$ și normală este același pentru cele două suprafețe). Dacă proiecțiile suprafețelor se suprapun în imagine, atunci ele nu se vor distinge. Această situație apare deoarece în model nu se ține cont de faptul că intensitatea luminii descrește proporțional cu inversul pătratului distanței de la sursa de lumină la obiect. Deci, obiectele mai îndepărtate de sursă sunt mai slab luminate. O posibilă corecție a modelului, care poate fi aplicată pentru surse poziționale (la distanță finită de scenă) este: | ||
<code glsl> | <code glsl> | ||
- | vec3 culoareObiect = emisiva + ambientala + factorAtenuare * ( difuza + speculara ); # GLSL | + | culoareObiect = emisiva + ambientala + factorAtenuare * ( difuza + speculara ); # GLSL |
</code> | </code> | ||