This shows you the differences between two versions of the page.
|
egc:laboratoare:08 [2022/12/05 14:04] alexandru.gradinaru |
egc:laboratoare:08 [2023/12/06 12:29] (current) anca.cristea [Iluminare Spot-light] |
||
|---|---|---|---|
| Line 4: | Line 4: | ||
| **Autori**: [[Ph.Dumitru@gmail.com | Philip Dumitru]], [[andrei.lapusteanu@upb.ro | Andrei Lăpușteanu]], [[caragicu_r@outlook.com | Robert Caragicu]] | **Autori**: [[Ph.Dumitru@gmail.com | Philip Dumitru]], [[andrei.lapusteanu@upb.ro | Andrei Lăpușteanu]], [[caragicu_r@outlook.com | Robert Caragicu]] | ||
| - | <hidden> | + | |
| ==== Modelarea reflexiei luminii ==== | ==== Modelarea reflexiei luminii ==== | ||
| Line 34: | Line 34: | ||
| Totuși, trebuie să menționăm că modelul complet urmărește formula de mai sus, unde constantele de material $K_e, K_a, K_d, K_s$ sunt diferite și au 3 canale $(R,G,B)$, iar intensitatea luminii ambientale și intensitatea sursei de lumină au de asemenea 3 canale. Expresia luminii se evaluează separat pentru cele trei canale. | Totuși, trebuie să menționăm că modelul complet urmărește formula de mai sus, unde constantele de material $K_e, K_a, K_d, K_s$ sunt diferite și au 3 canale $(R,G,B)$, iar intensitatea luminii ambientale și intensitatea sursei de lumină au de asemenea 3 canale. Expresia luminii se evaluează separat pentru cele trei canale. | ||
| - | </hidden> | + | |
| ==== Iluminare Phong in Fragment Shader ==== | ==== Iluminare Phong in Fragment Shader ==== | ||
| Line 109: | Line 109: | ||
| Astfel, punctul **P** se afla in conul de lumina (primeste lumina) daca conditia urmatoare este indepilita: | Astfel, punctul **P** se afla in conul de lumina (primeste lumina) daca conditia urmatoare este indepilita: | ||
| <code glsl> | <code glsl> | ||
| - | float cut_off = radians(30); | + | float cut_off = radians(30.0f); |
| float spot_light = dot(-L, light_direction); | float spot_light = dot(-L, light_direction); | ||
| if (spot_light > cos(cut_off)) | if (spot_light > cos(cut_off)) | ||
| Line 121: | Line 121: | ||
| <code glsl> | <code glsl> | ||
| - | float cut_off = radians(30); | + | float cut_off = radians(30.0f); |
| float spot_light = dot(-L, light_direction); | float spot_light = dot(-L, light_direction); | ||
| float spot_light_limit = cos(cut_off); | float spot_light_limit = cos(cut_off); | ||
| Line 241: | Line 241: | ||
| * Directia de ilumiare este transmisa ca ''uniform vec3 light_direction'' | * Directia de ilumiare este transmisa ca ''uniform vec3 light_direction'' | ||
| * Nu uitati sa aplicati un model de atenuare al luminii in functie de apropierea fragmentelor de unghiul de cut-off | * Nu uitati sa aplicati un model de atenuare al luminii in functie de apropierea fragmentelor de unghiul de cut-off | ||
| - | - Sa se adauga în scenă o nouă sursă de lumină | + | - Sa se adauge în scenă o nouă sursă de lumină si sa se calculeze iluminarea |
| **[Bonus]** | **[Bonus]** | ||
| Line 248: | Line 248: | ||
| * rotirea spotului: **sus, jos, stanga, dreapta** | * rotirea spotului: **sus, jos, stanga, dreapta** | ||
| * 2 taste pentru a creste/micsora unghiul de iluminare al spot-ului | * 2 taste pentru a creste/micsora unghiul de iluminare al spot-ului | ||
| - | * Sa se adauga în scenă o nouă sursă de lumină | + | |
| <hidden> | <hidden> | ||