Differences

This shows you the differences between two versions of the page.

Link to this comparison view

egc:teme:2018:03 [2018/12/07 22:20]
ovidiu.dinu [Elementele decorative]
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 ===== 
  
 {{ :​egc:​teme:​2018:​55-7789-subversion_city_600.jpg?​500 |}} {{ :​egc:​teme:​2018:​55-7789-subversion_city_600.jpg?​500 |}}
-Scopul acestei teme este de a stimula creativitatea prin generarea procedurala a unui oras in 3D. Va veti folosi cunostintele din domeniul graficii asistate de calculator, anume **generare de modele 3D**, **transformari geometrice** **iluminare** si **texturare**. \\ +Scopul acestei teme este de a stimula creativitatea prin generarea procedurala a unui oras in 3D. Va veti folosi cunostintele din domeniul graficii asistate de calculator, anume **generare de modele 3D**, **transformari geometrice****iluminare** si **texturare**. \\ 
-Tema isi propune un minim de complexitate,​ descris in cerintele ce urmeaza, insa va incurajeaza sa veniti cu idei si abordari proprii, astfel incat va exercitati capabilitatile programatice si creativitatea,​ prin generare procedurala. \\+Tema isi propune un minim de complexitate,​ descris in cerintele ce urmeaza, insa va incurajeaza sa veniti cu idei si abordari proprii, astfel incat sa va exercitati capabilitatile programatice si creativitatea,​ prin generare procedurala. \\
 Utilitatea deprinderilor dobandite in urma crearii acestui mediu virtual se regaseste in industrii precum: jocuri video(mai ales open world, e.g. No Man's Sky), filme(Hollywood CGI), retail(e.g. geometric patterns). Utilitatea deprinderilor dobandite in urma crearii acestui mediu virtual se regaseste in industrii precum: jocuri video(mai ales open world, e.g. No Man's Sky), filme(Hollywood CGI), retail(e.g. geometric patterns).
 ===== Generare procedurală ===== ===== Generare procedurală =====
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 49: Line 51:
 Fiecare cladire va avea un set de lumini de tip **spot** care o ilumineaza doar pe aceasta, cu directia aproximativ perpendiculara pe ground plane. Si aceastea vor fi generate procedural. Fiecare cladire va avea un set de lumini de tip **spot** care o ilumineaza doar pe aceasta, cu directia aproximativ perpendiculara pe ground plane. Si aceastea vor fi generate procedural.
  
-==== Camera ==== +
-Veti avea **o camera interactiva** care pe o tasta face **toggle intre modurile First Person/​Third Person**. +
-<note important>​Camera trebuie sa fie implementata de voi in laborator, si nu cea din framework.</​note>​+
 ===== Exemplu de Implementare ===== ===== Exemplu de Implementare =====
 +Sunteti incurajati sa va ghidati dupa implementarea de la acest link: \\
 +//​**[[https://​youtu.be/​-d2-PtK4F6Y]]**//​
 +<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 ====
  
-[[https://youtu.be/-d2-PtK4F6Y]]+  * 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
  
  
Line 64: 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
  
egc/teme/2018/03.1544214055.txt.gz · Last modified: 2018/12/07 22:20 by ovidiu.dinu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0