This shows you the differences between two versions of the page.
pgapi:teme:2024:01 [2024/12/02 12:50] silviu.stancioiu00 [Notare (250)] |
pgapi:teme:2024:01 [2024/12/08 16:55] (current) silviu.stancioiu00 [Teren] |
||
---|---|---|---|
Line 3: | Line 3: | ||
* **Responsabili:** Anca Băluțoiu, Silviu Stăncioiu, Mihnea Mitrache, Andrei Voicu | * **Responsabili:** Anca Băluțoiu, Silviu Stăncioiu, Mihnea Mitrache, Andrei Voicu | ||
* **Lansare:** 15 noiembrie 2024 | * **Lansare:** 15 noiembrie 2024 | ||
- | * **Termen de predare:** 5 decembrie 2024, ora 23:55 | + | * **Termen de predare:** 11 decembrie 2024, ora 23:55 |
* **Regulament:** https://ocw.cs.pub.ro/courses/pgapi/regulament_general | * **Regulament:** https://ocw.cs.pub.ro/courses/pgapi/regulament_general | ||
* **Notă: Orice informație ce nu a fost acoperită în acest document este la latitudinea voastră!** | * **Notă: Orice informație ce nu a fost acoperită în acest document este la latitudinea voastră!** | ||
Line 16: | Line 16: | ||
===== Teren ===== | ===== Teren ===== | ||
- | Se va genera procedural un mesh pentru teren. Inițial se va porni de la un grid de rezoluție m x n, iar apoi se vor face următoarele operații de displacement pe vertecșii acestuia: | + | Se va genera procedural un mesh pentru teren. Pentru a simplifica lucrurile, mesh-ul va fi generat în întregime pe CPU (folosind metoda prezentată în laboratorul 2 de EGC), nefiind necesară folosirea de Geomtry Shaders. Inițial se va porni de la un grid de rezoluție m x n, iar apoi se vor face următoarele operații de displacement pe vertecșii acestuia: |
- Definirea suprafețelor concave și convexe ale terenului: Terenul va defini o suprafață convexă pentru zona în care se va afla lacul și una concavă unde vor fi munții. Displacement-ul aferent acestor parabole va fi calculat în funcție de distanța dintre vertecși și centrul mesh-ului astfel: | - Definirea suprafețelor concave și convexe ale terenului: Terenul va defini o suprafață convexă pentru zona în care se va afla lacul și una concavă unde vor fi munții. Displacement-ul aferent acestor parabole va fi calculat în funcție de distanța dintre vertecși și centrul mesh-ului astfel: | ||
{{ :pgapi:teme:2024:formula_teren.png?200 |}} | {{ :pgapi:teme:2024:formula_teren.png?200 |}} | ||
Line 31: | Line 31: | ||
Parametrul t este apoi folosit pentru a evalua curba propriu-zisă (nu cea proiectată pe OZ) și a găsi cel mai apropiat punct de pe curbă. O să numim acest punct b_closest. | Parametrul t este apoi folosit pentru a evalua curba propriu-zisă (nu cea proiectată pe OZ) și a găsi cel mai apropiat punct de pe curbă. O să numim acest punct b_closest. | ||
- | Pentru a realiza curbura în teren putem interpola între înălțimea sa inițială și înălțimea celui mai apropiat punct pe curba în 3D (y_b_closest) astfel:{{ :pgapi:teme:2024:screenshot_2024-11-14_232359.png?200 |}} unde r_cascada este raza cascadei noastre. | + | Pentru a realiza curbura în teren putem interpola între înălțimea sa inițială și înălțimea celui mai apropiat punct pe curba în 3D (y_b_closest) astfel:{{ :pgapi:teme:2024:screenshot_2024-11-14_233111.png?200 |}} unde r_cascada este raza cascadei noastre. |
Folosind formula descrisă mai sus vom avea o curbură, dar aceasta nu va avea o formă naturală. Putem îmbunătăți forma acesteia folosind funcția sinus: | Folosind formula descrisă mai sus vom avea o curbură, dar aceasta nu va avea o formă naturală. Putem îmbunătăți forma acesteia folosind funcția sinus: |