Differences

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

Link to this comparison view

egc:teme:2022:03 [2022/12/19 01:11]
andrei.lapusteanu
egc:teme:2022:03 [2022/12/20 12:14] (current)
andrei.lapusteanu [Minor edit] Changed "Jucătorul" to "Jucător" in section "Construcția scenei"
Line 15: Line 15:
 <​html>​ <​html>​
 <p style="​text-align:​center;​margin:​auto;">​ <p style="​text-align:​center;​margin:​auto;">​
-<iframe width="​600" height="​315"​ src="​https://​www.youtube.com/​embed/​wGcWqHtiNZQ"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture"​ allowfullscreen></​iframe>​+<iframe width="​560" height="​315"​ src="​https://​www.youtube.com/​embed/​wGcWqHtiNZQ"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture"​ allowfullscreen></​iframe>​
 </p> </p>
 </​html>​ </​html>​
Line 23: Line 23:
 Scena 3D va fi formată din: Scena 3D va fi formată din:
   * Terenul jocului (panta de ski)   * Terenul jocului (panta de ski)
-  * Jucătorul+  * Jucător
   * Obstacole și elemente colectabile   * Obstacole și elemente colectabile
   * Surse de lumină atașate obiectelor 3D   * Surse de lumină atașate obiectelor 3D
Line 45: Line 45:
 În următorul GIF este prezentată scena jocului dintr-un punct fix. Se observă generarea și ștergerea obstacolelor,​ faptul că terenul rămâne cu centrul la poziția jucătorului,​ precum și modalitatea prin care sunt modificate coordonatele de textură ale pantei pentru a reda iluzia de mișcare. În următorul GIF este prezentată scena jocului dintr-un punct fix. Se observă generarea și ștergerea obstacolelor,​ faptul că terenul rămâne cu centrul la poziția jucătorului,​ precum și modalitatea prin care sunt modificate coordonatele de textură ale pantei pentru a reda iluzia de mișcare.
  
-{{ :​egc:​teme:​2022:​egc_2022_t3_terrain_tex_anim.gif?​400 |}}+{{ :​egc:​teme:​2022:​egc_2022_t3_terrain_tex_anim.gif?​550 |}} 
 + 
 +<​note>​ 
 +Precum se observă și în animația de mai sus, terenul trebuie să aibă un unghi de înclinare, obiectele se vor genera pe această pantă înclinată. În demo am setat un unghi de înclinare de 30°. 
 +</​note>​
  
 === Jucătorul === === Jucătorul ===
Line 118: Line 122:
 ===== Iluminare ===== ===== Iluminare =====
  
-Iluminare ​scenei se va implementa folosind 3 tipuri de surse de lumină, anume:+Iluminarea ​scenei se va implementa folosind 3 tipuri de surse de lumină, anume:
   * O lumină **direcțională** va ilumina toate obiectele din scenă cu aceeași intensitate (ex. Soare). Nu este neapărat nevoie de reprezentarea sursei de lumină print-un obiect, însă se va verifica existența acesteia. Specific luminii de tip direcțional este faptul că vectorul luminii incidente (L) nu depinde de poziția luminii (precum în cazul luminilor de tip point și spot). Așadar, pentru fiecare fragment, iluminarea va fi calculată folosind același vector L (corespunzător direcției luminii). De exemplu, se poate alege ca lumina direcțională să aibă direcția sursei de lumină orientată direct în joc (perpendicular pe XoZ), așadar, direcția s-ar seta astfel: <code cpp>​glm::​vec3(0.f,​ -1.f, 0.f);</​code>​   * O lumină **direcțională** va ilumina toate obiectele din scenă cu aceeași intensitate (ex. Soare). Nu este neapărat nevoie de reprezentarea sursei de lumină print-un obiect, însă se va verifica existența acesteia. Specific luminii de tip direcțional este faptul că vectorul luminii incidente (L) nu depinde de poziția luminii (precum în cazul luminilor de tip point și spot). Așadar, pentru fiecare fragment, iluminarea va fi calculată folosind același vector L (corespunzător direcției luminii). De exemplu, se poate alege ca lumina direcțională să aibă direcția sursei de lumină orientată direct în joc (perpendicular pe XoZ), așadar, direcția s-ar seta astfel: <code cpp>​glm::​vec3(0.f,​ -1.f, 0.f);</​code>​
-  * Stâlpii de iluminat vor emite două lumini de tip **spotlight** care vor porni din "​becurile"​ obiectului, respectiv din marginile paralelipiedului superior. Lumina trebuie să se observe pe suprafața zăpezii. De asemenea, orice obiect care trece pe sub stâlpul de iluminat fi iluminat de spot +  * Stâlpii de iluminat vor emite două lumini de tip **spotlight** care vor porni din "​becurile"​ obiectului, respectiv din marginile paralelipiedului superior. Lumina trebuie să se observe pe suprafața zăpezii. De asemenea, orice obiect care trece pe sub stâlpul de iluminat ​va fi iluminat de spot. 
-  * Elementele colectabile și copacii vor avea o sursă de lumină **punctiformă**,​ de diverse culori, poziționată în interiorul sau apropierea obiectului. Componentele unei surse de lumină pot avea aceeași culoare aleasă aleatoriu sau dintr-o gamă mai largă de culori, însă NU toate obiectele vor emite aceeași culoare. În plus, fiecare sursă de lumină punctiformă va avea o arie de acoperire pentru lumina emisă, fapt controlat print-un factor de atenuare constrâns de distanța dintre obiectul luminat și sursa de lumină+  * Elementele colectabile și copacii vor avea o sursă de lumină **punctiformă**,​ de diverse culori, poziționată în interiorul sau apropierea obiectului. Componentele unei surse de lumină pot avea aceeași culoare aleasă aleatoriu sau dintr-o gamă mai largă de culori, însă NU toate obiectele vor emite aceeași culoare. În plus, fiecare sursă de lumină punctiformă va avea o arie de acoperire pentru lumina emisă, fapt controlat print-un factor de atenuare constrâns de distanța dintre obiectul luminat și sursa de lumină.
  
-<note important>​Intensitatea luminilor de tip point și spot **trebuie** atenuată pe baza distanței (dintre sursă și punctul în care se calculează iluminarea). Lumina de tip direcțional **nu** trebuie atenuată. </​note>​+<note important>​Intensitatea luminilor de tip point și spot **trebuie** atenuată pe baza distanței (dintre sursă și punctul în care se calculează iluminarea). Lumina de tip direcțional **nu** trebuie atenuată. ​ 
 + 
 +Precum este prezentat în demo, implementarea voastră trebuie să suporte **randarea mai multor surse de lumină în același frame!** 
 +</​note>​
  
 ===== Calcul și afișare scor ===== ===== Calcul și afișare scor =====
Line 139: Line 146:
  
   * Texturare + asamblare obiecte 3D (55p)   * Texturare + asamblare obiecte 3D (55p)
-    * Desenare teren (15p)+    * Desenare teren înclinat ​(15p)
       * Desenare pătrat (quad) teren (5p)       * Desenare pătrat (quad) teren (5p)
       * Modificare UV-uri pentru a reda efectul deplasării (10p)       * Modificare UV-uri pentru a reda efectul deplasării (10p)
Line 147: Line 154:
     * Jucător (8p)     * Jucător (8p)
     * Pietre (8p)     * Pietre (8p)
-  * Iluminare 40p +  * Iluminare ​(40p
     * Iluminare direcțională (10p)     * Iluminare direcțională (10p)
     * Iluminare de tip spot atașată stâlpilor de iluminat (15p)     * Iluminare de tip spot atașată stâlpilor de iluminat (15p)
     * Iluminare punctiformă atașată copacilor si cadourilor (15p)     * Iluminare punctiformă atașată copacilor si cadourilor (15p)
   * Elemente de gameplay (55p)   * Elemente de gameplay (55p)
-    * Deplasare jucător (10p)+    * Deplasare ​și orientare ​jucător (10p)
     * Coliziune jucător-obstacole (10p)     * Coliziune jucător-obstacole (10p)
     * Coliziune jucător-cadouri (7.5p)     * Coliziune jucător-cadouri (7.5p)
egc/teme/2022/03.1671405074.txt.gz · Last modified: 2022/12/19 01:11 by andrei.lapusteanu
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