This shows you the differences between two versions of the page.
|
ipg:laboratoare:05 [2025/09/30 12:29] 127.0.0.1 external edit |
ipg:laboratoare:05 [2025/11/06 11:07] (current) andrei.lambru |
||
|---|---|---|---|
| Line 61: | Line 61: | ||
| - Apăsarea unei taste pentru prima dată în cadrul curent, cunoscută în limba engleză sub numele de **key press**. | - Apăsarea unei taste pentru prima dată în cadrul curent, cunoscută în limba engleză sub numele de **key press**. | ||
| - Neapăsarea unei taste la cadrul curent, în situația în care tasta a fost apăsată la cadrul anterior, cunoscută în limba engleză sub numele de **key release**. | - Neapăsarea unei taste la cadrul curent, în situația în care tasta a fost apăsată la cadrul anterior, cunoscută în limba engleză sub numele de **key release**. | ||
| - | - Apăsarea unei taste la cadrul curent, indiferent când a fost apasată prima dată, cunoscută în limba engleză sub numele de **key hold**. | + | - Apăsarea unei taste la cadrul curent, indiferent când a fost apăsată prima dată, cunoscută în limba engleză sub numele de **key hold**. |
| Interacțiunea utilizatorului cu butoanele de la mouse este de 3 feluri, similar ca în situația tastelor, descrisă mai sus. | Interacțiunea utilizatorului cu butoanele de la mouse este de 3 feluri, similar ca în situația tastelor, descrisă mai sus. | ||
| Line 76: | Line 76: | ||
| </code> | </code> | ||
| - | Metoda ''OnKeyPress'' se apelează pentru fiecare tastă apăsată într-un cadru. Trebuie verificat în interiorul metodei, pe baza parametrilor, ce tastă a fost apasată. Pentru mai multe informații despre fiecare metodă în parte, vă rog să citiți detaliile din [[https://github.com/UPB-Graphics/gfx-framework-ppbg/blob/master/src/core/window/input_controller.h | fișierul header al clasei InputController]]. | + | Metoda ''OnKeyPress'' se apelează pentru fiecare tastă apăsată într-un cadru. Trebuie verificat în interiorul metodei, pe baza parametrilor, ce tastă a fost apăsată. Pentru mai multe informații despre fiecare metodă în parte, vă rog să citiți detaliile din [[https://github.com/UPB-Graphics/gfx-framework-ipg/blob/master/src/core/window/input_controller.h | fișierul header al clasei InputController]]. |
| <note tip> | <note tip> | ||
| Line 143: | Line 143: | ||
| ==== Modele 3D ==== | ==== Modele 3D ==== | ||
| - | Un model 3D, cunoscut în limba engleză sub numele de **3D mesh**, este un obiect tridimensional definit prin vârfuri și indici. În laborator aveți posibilitatea să încărcați modele 3D în aproape orice format posibil prin intermediul clasei [[https://github.com/UPB-Graphics/gfx-framework-ppbg/blob/master/src/core/gpu/mesh.h#L48|Mesh]]. | + | Un model 3D, cunoscut în limba engleză sub numele de **3D mesh**, este un obiect tridimensional definit prin vârfuri și indici. În laborator aveți posibilitatea să încărcați modele 3D în aproape orice format posibil prin intermediul clasei [[https://github.com/UPB-Graphics/gfx-framework-ipg/blob/master/src/core/gpu/mesh.h#L48|Mesh]]. |
| Line 274: | Line 274: | ||
| * După completarea corectă a metodei, rezultatul vizual ar trebui să fie următorul: {{ :ipg:laboratoare:result1.png?600 |}} | * După completarea corectă a metodei, rezultatul vizual ar trebui să fie următorul: {{ :ipg:laboratoare:result1.png?600 |}} | ||
| - 0.05p - La apăsarea unei taste, alegeți o culoare aleatorie pentru curățarea grilei de pixeli. | - 0.05p - La apăsarea unei taste, alegeți o culoare aleatorie pentru curățarea grilei de pixeli. | ||
| - | * Utilizați în metoda ''Update()'', directiva de specificare a culorii de curățare a grilei de pixeli. | + | * Utilizați în metoda ''Update()'' directiva de specificare a culorii de curățare a grilei de pixeli. |
| * La apăsarea tastei R, alegeți o culoare aleatorie. | * La apăsarea tastei R, alegeți o culoare aleatorie. | ||
| - 0.05p - La apăsarea unei taste, schimbați între desenarea triunghiurilor a căror fațetă față sau spate se afișează. | - 0.05p - La apăsarea unei taste, schimbați între desenarea triunghiurilor a căror fațetă față sau spate se afișează. | ||
| * Utilizați în metoda ''DrawObjects()'', directivele de activare și dezactivare a optimizării Face culling. | * Utilizați în metoda ''DrawObjects()'', directivele de activare și dezactivare a optimizării Face culling. | ||
| - | * Utilizați în metoda ''DrawObjects()'' directiva de specificare a tipului de față pentru care triunghiurile se elimina din procesul de rasterizare. | + | * Utilizați în metoda ''DrawObjects()'' directiva de specificare a tipului de față pentru care triunghiurile se elimină din procesul de rasterizare. |
| * La apăsarea tastei F, schimbați între eliminarea triunghiurilor pentru care se afișează fațeta față sau spate. | * La apăsarea tastei F, schimbați între eliminarea triunghiurilor pentru care se afișează fațeta față sau spate. | ||
| - | - 0.05p - Pentru cele 3 cuburi din scenă, aplicați urmatoarele animații: | + | - 0.05p - Pentru cele 3 cuburi din scenă, aplicați următoarele animații: |
| * Unul dintre cuburi să se deplaseze continuu sus-jos între limitele 0 și 3 de-a lungul axei Y. | * Unul dintre cuburi să se deplaseze continuu sus-jos între limitele 0 și 3 de-a lungul axei Y. | ||
| * Un alt cub să se rotească continuu față de una dintre cele 3 axe principale. | * Un alt cub să se rotească continuu față de una dintre cele 3 axe principale. | ||
| - | * Un alt cub sa pulseze continuu între scările 0.5 și 2. | + | * Un alt cub să pulseze continuu între scările 0.5 și 2. |
| - 0.05p - Desenați un alt cub pe care să îl deplasați prin spațiu la apăsarea tastelor W, A, S, D, E, Q (pozitiv și negativ pe toate cele 3 axe). Nu permiteți deplasarea cubului în situația în care poziția observatorului se modifică. | - 0.05p - Desenați un alt cub pe care să îl deplasați prin spațiu la apăsarea tastelor W, A, S, D, E, Q (pozitiv și negativ pe toate cele 3 axe). Nu permiteți deplasarea cubului în situația în care poziția observatorului se modifică. | ||
| - 0.05p - Desenați obiectele de 4 ori în 4 porți de afișare diferite, conform imaginii de mai jos. Păstrați proporțiile precizate în imagine. | - 0.05p - Desenați obiectele de 4 ori în 4 porți de afișare diferite, conform imaginii de mai jos. Păstrați proporțiile precizate în imagine. | ||