This shows you the differences between two versions of the page.
|
egc:laboratoare:08 [2022/12/07 10:12] alexandru.gradinaru |
egc:laboratoare:08 [2025/11/26 21:57] (current) andrei.voicu2409 [Cerinte laborator] |
||
|---|---|---|---|
| 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 243: | Line 243: | ||
| - Sa se adauge în scenă o nouă sursă de lumină si sa se calculeze iluminarea | - Sa se adauge în scenă o nouă sursă de lumină si sa se calculeze iluminarea | ||
| - | **[Bonus]** | ||
| - | * Sa se modifice directia si unghiul de cut-off al luminii spotlight de la tastatura | ||
| - | * logica in ''OnInputUpdate'' | ||
| - | * rotirea spotului: **sus, jos, stanga, dreapta** | ||
| - | * 2 taste pentru a creste/micsora unghiul de iluminare al spot-ului | ||
| - | <hidden> | ||
| - | * Sa se adauga în scenă o nouă sursă de lumină | ||
| - | - Modelul de iluminare Phong, folosind 3 canale de culoare: | ||
| - | Atât în implementearea laboratorului de săptămâna trecută, cât și în implementarea laboratorului din această săptămână, am folosit un model simplificat. Din acest motiv, propunem ca bonus să modificați fragment shader și vertex shader astfel încât să vedeți cum se face de fapt implementarea iluminării. Astfel, va trebui sa implementați următoarele: | + | |
| + | <hidden> | ||
| + | ---- | ||
| + | Bonusuri posibile: | ||
| + | - **[Bonus]** Sa se modifice directia si unghiul de cut-off al luminii spotlight de la tastatura | ||
| + | * logica in ''OnInputUpdate'' | ||
| + | * rotirea spotului: **sus, jos, stanga, dreapta** | ||
| + | * 2 taste pentru a creste/micsora unghiul de iluminare al spot-ului | ||
| + | - **[Bonus]** Spot-light cu atenuare unghiulară | ||
| + | * Implementați un spot-light cu tranziție lină între zona iluminată și cea neiluminată. | ||
| + | * Folosiți două unghiuri de referință (cut-off interior și cut-off exterior) pentru a calcula intensitatea luminii în funcție de unghiul dintre direcția spotului și fragment. | ||
| + | * Rezultat vizual: marginea conului de lumină să fie netedă, fără treceri bruște. | ||
| + | - **[Bonus]** Modelul de iluminare Phong, folosind 3 canale de culoare: | ||
| + | Atât în implementarea laboratorului de săptămâna trecută, cât și în implementarea laboratorului din această săptămână, am folosit un model simplificat. Din acest motiv, propunem ca bonus să modificați fragment shader și vertex shader astfel încât să vedeți cum se face de fapt implementarea iluminării. Astfel, va trebui sa implementați următoarele: | ||
| * Constantele de material Ke, Ka, Kd, Ks vor fi variabile de tip vec3, cu valori diferite pe toate cele cele 3 canale de culoare (de data aceasta va fi nevoie să trimiteți toate aceste constante către shader). | * Constantele de material Ke, Ka, Kd, Ks vor fi variabile de tip vec3, cu valori diferite pe toate cele cele 3 canale de culoare (de data aceasta va fi nevoie să trimiteți toate aceste constante către shader). | ||
| * Veți renunța la variabila object_color prin care ați modelat culoarea obiectului. În această implementare, culoarea obiectului va fi calculată folosind cele 4 constante de material. | * Veți renunța la variabila object_color prin care ați modelat culoarea obiectului. În această implementare, culoarea obiectului va fi calculată folosind cele 4 constante de material. | ||
| Line 262: | Line 267: | ||
| {{ :egc:laboratoare:phong.png?500 |}} | {{ :egc:laboratoare:phong.png?500 |}} | ||
| + | |||
| </hidden> | </hidden> | ||