This shows you the differences between two versions of the page.
egc:teme:2018:03 [2018/12/08 00:06] ovidiu.dinu [Camera] |
egc:teme:2018:03 [2019/01/10 15:46] (current) alexandru.gradinaru [Alte exemple orientative] |
||
---|---|---|---|
Line 3: | Line 3: | ||
* **Responsabili**: Alex Gradinaru, Alex Dinu \\ | * **Responsabili**: Alex Gradinaru, Alex Dinu \\ | ||
* **Perioada de lucru**: 8/12/2018 – 13/01/2019 | * **Perioada de lucru**: 8/12/2018 – 13/01/2019 | ||
- | * **Termen de predare**: 13/01/2019, 23:55 \\ | + | * **Termen de predare**: 13/01/2019, 23:55 \\ |
- | * **Depunctare intarziere**: **2.5p/zi** pana la maxim **40p** din totalul de **100p** | + | |
===== New Vegas ===== | ===== New Vegas ===== | ||
Line 28: | Line 27: | ||
===== Cerinte ===== | ===== Cerinte ===== | ||
Se va genera procedural o scena cu elementele mentionate mai sus.\\ | Se va genera procedural o scena cu elementele mentionate mai sus.\\ | ||
+ | Utilizatorul se poate plimba prin intreaga scena utilizand camera din laborator. \\ | ||
La fiecare noua rulare a aplicatiei, orasul va arata diferit. | La fiecare noua rulare a aplicatiei, orasul va arata diferit. | ||
==== Clădrile ==== | ==== Clădrile ==== | ||
Cladirile sunt formate prin asamblare de **primitive** cu geometrie alterata procedural. Asamblarea este controlata printr-un proces **pseudorandom** creat de voi. Primitivele pot fi, de exemplu, cilindri cu distanta nu neaparat uniforma intre oricare 2 puncte succesive de pe conturul cercului generator, cu numar variabil de puncte, etc. Pot fi paralelipipede, etc.\\ | Cladirile sunt formate prin asamblare de **primitive** cu geometrie alterata procedural. Asamblarea este controlata printr-un proces **pseudorandom** creat de voi. Primitivele pot fi, de exemplu, cilindri cu distanta nu neaparat uniforma intre oricare 2 puncte succesive de pe conturul cercului generator, cu numar variabil de puncte, etc. Pot fi paralelipipede, etc.\\ | ||
Pentru fiecare triunghi generat, trebuie sa generati si **coordonatele de texturare** corespunzatoare, astfel incat puteti aplica o textura repetitiva (tileable, folositi **GL_REPEAT**) cu ferestre. Puteti gandi triunghiurile constituente ale primitivelor cate 2, formand un quad, caruia sa-i dati coordonate de texturare in afara intervalului (0,1)x(0,1), astfel incat sa folositi **GL_REPEAT** corespunzator.\\ | Pentru fiecare triunghi generat, trebuie sa generati si **coordonatele de texturare** corespunzatoare, astfel incat puteti aplica o textura repetitiva (tileable, folositi **GL_REPEAT**) cu ferestre. Puteti gandi triunghiurile constituente ale primitivelor cate 2, formand un quad, caruia sa-i dati coordonate de texturare in afara intervalului (0,1)x(0,1), astfel incat sa folositi **GL_REPEAT** corespunzator.\\ | ||
- | Asamblarea primitivelor constituente unei cladiri consta in aplicarea de **transformari** (**scalare, translatie, rotatie**) acestora dupa un **set de reguli(constrangeri)** creat de voi astfel incat rezultatul arata ca o potentiala cladire. | + | Asamblarea primitivelor constituente unei cladiri consta in aplicarea de **transformari** (**scalare, translatie, rotatie**) acestora dupa un **set de reguli(constrangeri)** creat de voi astfel incat rezultatul arata ca o potentiala cladire.\\ |
+ | |||
+ | {{ :egc:teme:2018:untitled.png?500 |}} | ||
==== Străzile ==== | ==== Străzile ==== | ||
Line 39: | Line 41: | ||
Strazile trebuie sa fie si ele **texturate** utilizand **GL_REPEAT**. | Strazile trebuie sa fie si ele **texturate** utilizand **GL_REPEAT**. | ||
<note important>Geometriile cladirilor nu se vor suprapune peste geometriile strazilor. </note> | <note important>Geometriile cladirilor nu se vor suprapune peste geometriile strazilor. </note> | ||
+ | Minimul de complexitate implica doar strazi pe verticala si pe orizontala. Cladirile vor fi plasate in celulele formate intre strazi. Minimul de complexitate implica o cladire per celula. | ||
==== Elementele decorative ==== | ==== Elementele decorative ==== | ||
Orasul va contine elemente decorative plasate printr-un algoritm procedural, dupa un **set de reguli** ales de voi, astfel ca nu se intersecteaza cu alte elemente, iar pozitia, rotatia si dimensiunea acestora le incadreaza corespunzator in scena. \\ | Orasul va contine elemente decorative plasate printr-un algoritm procedural, dupa un **set de reguli** ales de voi, astfel ca nu se intersecteaza cu alte elemente, iar pozitia, rotatia si dimensiunea acestora le incadreaza corespunzator in scena. \\ | ||
Line 51: | Line 53: | ||
===== Exemplu de Implementare ===== | ===== Exemplu de Implementare ===== | ||
- | Sunteti incurajati sa va ghidati dupa implementarea de la acest link: | + | Sunteti incurajati sa va ghidati dupa implementarea de la acest link: \\ |
- | [[https://youtu.be/-d2-PtK4F6Y]] | + | //**[[https://youtu.be/-d2-PtK4F6Y]]**// |
<note tip>Puteti folosi gramatici independente de context pentru construirea algoritmului de generare procedurala. </note> | <note tip>Puteti folosi gramatici independente de context pentru construirea algoritmului de generare procedurala. </note> | ||
+ | |||
+ | ==== Alte exemple orientative ==== | ||
+ | |||
+ | * http://www.shamusyoung.com/twentysidedtale/images/pixelcity_cars3.jpg | ||
+ | * http://vectorworksindia.com/frontend/web/img/products/64d3e39fe525b9d56338e58dd6cd8be009e14dd1.png | ||
+ | * https://cdn.dribbble.com/users/17619/screenshots/1188357/attachments/156829/3d-city.png | ||
+ | * http://weelii.com/wp-content/uploads/2015/07/Low-Poly-City.jpg | ||
+ | * https://designshack.net/wp-content/uploads/cityscape-1.jpg | ||
+ | |||
+ | {{ :egc:teme:2018:procedural_buildings.jpg?500 |}} | ||
+ | ==== Resurse utile ==== | ||
+ | |||
+ | * http://pcg.wikidot.com/category-pcg-algorithms | ||
+ | * https://medium.freecodecamp.org/how-to-make-your-own-procedural-dungeon-map-generator-using-the-random-walk-algorithm-e0085c8aa9a | ||
+ | * https://stackoverflow.com/questions/155069/how-does-one-get-started-with-procedural-generation | ||
+ | |||
===== Bonus ===== | ===== Bonus ===== | ||
Line 62: | Line 80: | ||
===== Barem ===== | ===== Barem ===== | ||
<note tip> | <note tip> | ||
- | * **30p** - Generare procedurala a geometriei cladirilor | + | * **20p** - Generare procedurala a geometriei cladirilor |
- | * **30p** - Generare procedurala a retelei de drumuri | + | * **20p** - Generare procedurala a retelei de drumuri |
- | * **10p** - Texturarea cladirilor | + | * **20p** - Texturarea cladirilor |
- | * **10p** - Texturarea strazilor | + | * **20p** - Texturarea strazilor |
- | * **10p** - Iluminare scena | + | * **15p** - Iluminare scena |
- | * ** 5p** - Camera | + | |
* ** 5p** - Readme&Comentarii | * ** 5p** - Readme&Comentarii | ||