Differences

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

Link to this comparison view

egc:teme:2020:03 [2020/12/17 15:57]
bogdan.teaca
egc:teme:2020:03 [2020/12/23 18:54] (current)
andrei.lambru
Line 1: Line 1:
-<​hidden>​ +==== Tema 3 - Stylised Runner ​====
-==== Tema 3 -  ====+
  
   * **Responsabili:​** Bogdan Teacă, Cristi Lambru, Alex Dinu   * **Responsabili:​** Bogdan Teacă, Cristi Lambru, Alex Dinu
-  * **Lansare:​** ​17 decembrie+  * **Lansare:​** ​18 decembrie
   * **Termen de predare:** 24 ianuarie 2021, ora 23:55   * **Termen de predare:** 24 ianuarie 2021, ora 23:55
   * **Regulament:​** [[egc:​teme:​regulament|]]   * **Regulament:​** [[egc:​teme:​regulament|]]
   * **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ă!**
  
-În cadrul temei 3veți îmbunătăți realismul scenei din jocul implementat în tema 2. Puteți să porniți de la codul pe care l-ați implementat în cadrul temei 2. Scopul temei este alegerea unui stil vizual și modificarea tuturor elementelor vizuale din tema 2 pentru a acomoda acel stil. Stilul este la latitudinea voastra.+În cadrul temei 3 veți îmbunătăți realismul scenei din jocul implementat în tema 2. Puteți să porniți de la codul pe care l-ați implementat în cadrul temei 2. Scopul temei este alegerea unui stil vizual și modificarea tuturor elementelor vizuale din tema 2 pentru a acomoda acel stil. Stilul este la latitudinea voastra.
  
 Din tema 2 se vor păstra următoarele elemente: Din tema 2 se vor păstra următoarele elemente:
Line 15: Line 14:
  
 <note important>​ <note important>​
-În situația în care nu există implementată tema 2, sau dacă se dorește schimbarea modului de joc din temă, trebuie să se implementeze un nivel minimalist de gameplay. Acesta trebuie să conțină deplasarea sferei care reprezintă jucătorul pe o singură coloană cu platforme care nu conțin spații între ele. Practic, simularea unui drum infinit în fața jucătorului.+În situația în care nu există implementată tema 2, sau dacă se dorește schimbarea modului de joc din temă, trebuie să se implementeze ​cel puțin ​un nivel minimalist de gameplay. Acesta trebuie să conțină deplasarea sferei care reprezintă jucătorul pe o singură coloană cu platforme care nu conțin spații între ele. Practic, ​trebuie implementată ​simularea unui drum infinit în fața jucătorului.
 </​note>​ </​note>​
  
 === Elemente decorative === === Elemente decorative ===
-De-alungul ​coloanelor de platforme, la stanga si la dreapta, trebuie ​sa existe elemente de decor cu care nu se interactioneaza. Acestea sunt specifice stilului vizual ales. Noi instante ​de astfel de elemente de decor se vor genera din fata, cu cat jucatorul avanseaza ​pe platforme.+De-a lungul ​coloanelor de platforme, la stânga și la dreapta, trebuie ​să existe elemente de decor cu care nu se interacționează. Acestea sunt specifice stilului vizual ales. Noi instanțe ​de astfel de elemente de decor se vor genera din față, cu cât jucătorul avansează ​pe platforme.
  
-Este obligatoriu ca generarea elementelor decorative ​sa fie programabila. Nu este permis ​sa se utilizeze modele 3D incarcate ​direct. Geometria elementelor decorative trebuie ​realizata ​de voi. Aceasta poate fi realizata ​prin primitive simple: cuburi, piramide, prin asamblarea mai multor astfel de primitive sau prin metode mai complexe care reproduc stilul vizual ales.+Este obligatoriu ca generarea elementelor decorative ​să fie programabilă. Nu este permis ​să se utilizeze modele 3D încărcate ​direct. Geometria elementelor decorative trebuie ​realizată ​de voi. Aceasta poate fi realizată ​prin primitive simple: cuburi, piramide ​s.a., prin asamblarea mai multor astfel de primitive sau prin metode mai complexe care reproduc stilul vizual ales.
  
-De asemenea, este obligatoriu ca toate elementele decorative generate sa aiba atasata ​textura specifica ​elementului de decor ales. Pentru ​atasarea ​texturii trebuie generate ​in plus pentru fiecare vertex ​si coordonatele de textura.+De asemenea, este obligatoriu ca toate elementele decorative generate sa aibă atașată ​textură specifică ​elementului de decor ales. Pentru ​atașarea ​texturii trebuie generate ​în plus pentru fiecare vertex ​și coordonatele de textură. 
 + 
 +<note tip> 
 +Pentru a ușura procesul de texturare se recomandă să folosiți coordonate de textură care depășesc intervalul [0,1] împreună cu parametrul de texturare **GL_REPEAT**. 
 +</​note>​
  
 <note important>​ <note important>​
-Se oferă punctaj bonus pentru rezultate vizuale care satisfac cât mai mult stilul ​vizual ​ales!+Se oferă punctaj bonus pentru rezultate vizuale care satisfac cât mai mult stilul ales!
 </​note>​ </​note>​
  
Line 32: Line 35:
 Platformele din tema 2, sau cele care descriu drumul infinit după redefinirea modului de joc, trebuie sa aibă atașată o textură specifică stilului ales. De asemenea, dacă este necesar, puteți alege și o formă diferită pentru acestea. Platformele din tema 2, sau cele care descriu drumul infinit după redefinirea modului de joc, trebuie sa aibă atașată o textură specifică stilului ales. De asemenea, dacă este necesar, puteți alege și o formă diferită pentru acestea.
  
-Este obligatorie introducerea de noi obstacole pe platforme. Aceste obstacole vor fi entități care blochează trecerea jucătorului și peste care acesta va trebui sa sară. Dacă jucătorul se lovește de ele, acesta va trebui sancționat:​ va pierde o viață, dacă se pastreaza ​implementarea din tema 2 sau va pierde tot jocul.+Este obligatorie introducerea de noi obstacole pe platforme. Aceste obstacole vor fi entități care blochează trecerea jucătorului și peste care acesta va trebui sa sară. Dacă jucătorul se lovește de ele, acesta va trebui sancționat:​ va pierde o viață, dacă se păstrează ​implementarea din tema 2 sau va pierde tot jocul.
  
 === Elemente colectabile === === Elemente colectabile ===
-Pe platforme trebuie să se afle o serie de elemente colectabile specifice stilului ales. Aceste elemente nu trebuie sa fie statice la locul amplasarii si trebuie sa aiba o animatie aleasa ​de voi. Ele vor fi colectate când jucătorul le va atinge și vor crește scorul acestuia, scor care va fi afișat în colțul din dreapta sus.+Pe platforme trebuie să se afle o serie de elemente colectabile specifice stilului ales. Aceste elemente nu trebuie sa fie statice la locul amplasării,​ adică ​trebuie sa aiba o animație aleasă ​de voi. Ele vor fi colectate când jucătorul le va atinge și vor crește scorul acestuia, scor care va fi afișat în colțul din dreapta sus.
  
 <note important>​ <note important>​
Line 42: Line 45:
  
 === Iluminarea scenei === === Iluminarea scenei ===
-Este obligatoriu ca în cel puțin două tipuri de elemente decorative ​sa introduceți elemente care produc lumină. Unul dintre ele va trebui sa conțină o sursă de lumină punctiformă și altul una de tip spot. Aceste surse de lumină trebuie să lumineze toată scena (obiectul care conține elementul de decor, celelalte elemente decorative din jurul lui, platformele și sfera care reprezintă ​jucatorul). Fiecare instanță a unui astfel de element de decor trebuie sa aibă o culoare diferită pentru sursa de lumină față de celelalte.+Este obligatoriu ca în cel puțin două tipuri de elemente decorative ​să introduceți elemente care produc lumină. Unul dintre ele va trebui sa conțină o sursă de lumină punctiformă și altul una de tip spot. Aceste surse de lumină trebuie să lumineze toată scena (obiectul care conține elementul de decor, celelalte elemente decorative din jurul lui, platformele și sfera care reprezintă ​jucătorul). Fiecare instanță a unui astfel de element de decor trebuie sa aibă o culoare diferită pentru sursa de lumină față de celelalte.
  
-Pentru a putea calcula intensitatea ce provine de la mai multe surse de lumini trebuie ​sa trimiteți toate aceste surse către shader (poziție, culoare). Intensitatea finală a luminii va fi suma intensităților fiecărei lumini în parte, conform formulei de mai jos.+Pentru a putea calcula intensitatea ce provine de la mai multe surse de lumini trebuie ​să trimiteți toate aceste surse către shader (poziție, culoare). Intensitatea finală a luminii va fi suma intensităților fiecărei lumini în parte, conform formulei de mai jos.
  
-$culoarea = K_e + I_a \cdot K_a + \sum{f_{at_i} \cdot I_{sursă_i} (K_d \cdot max(\vec{N}\cdot \vec{L_i}, 0) + K_s \cdot  lum_i \cdot  ​(max(\vec{N}\cdot \vec{H_i}, 0)^n})$+$$culoarea = K_e + I_a \cdot K_a + \sum_{i}{f_{at_i} \cdot I_{sursă_i} (K_d \cdot max(\vec{N}\cdot \vec{L_i}, 0) + K_s \cdot  lum_i \cdot  max(\vec{N}\cdot \vec{H_i}, 0)^n})$$
  
 <note tip> <note tip>
Line 52: Line 55:
   * https://​www.youtube.com/​watch?​v=68JE1XmXrog   * https://​www.youtube.com/​watch?​v=68JE1XmXrog
   * https://​youtu.be/​1ZGMtV5iKDU?​t=15   * https://​youtu.be/​1ZGMtV5iKDU?​t=15
- 
 </​note>​ </​note>​
  
Line 58: Line 60:
   * Schimbarea geometriei platformelor,​ specifică stilului vizual ales   * Schimbarea geometriei platformelor,​ specifică stilului vizual ales
   * Rotirea surselor de lumină de tip spot pe parcursul rulării jocului.   * Rotirea surselor de lumină de tip spot pe parcursul rulării jocului.
-  * Powerup ​ce oferă jucătorului abilitatea de a atrage colectabilele înspre el (asemănător efectului unui magnet).+  * Power-up ​ce oferă jucătorului abilitatea ​redată vizual ​de a atrage colectabilele înspre el (asemănător efectului unui magnet).
   * O formă geometrică a jucătorului,​ specifică stilului vizual ales.   * O formă geometrică a jucătorului,​ specifică stilului vizual ales.
   * Crearea unui skybox specific stilului vizual ales, pe care îl puteți implementa prin texturarea unui cub scalat cu un factor supraunitar. Obiectele din scenă, împreună cu jucătorul, se vor afla în interiorul acestui cub, pentru a da impresia unui fundal aflat în depărtare.   * Crearea unui skybox specific stilului vizual ales, pe care îl puteți implementa prin texturarea unui cub scalat cu un factor supraunitar. Obiectele din scenă, împreună cu jucătorul, se vor afla în interiorul acestui cub, pentru a da impresia unui fundal aflat în depărtare.
Line 70: Line 72:
   * Platformele (25p)   * Platformele (25p)
     * Texturarea (5p)     * Texturarea (5p)
-    * Obstacolele (10p)+    * Obstacolele (20p)
   * Elementele colectabile (25p)   * Elementele colectabile (25p)
-    * Amplasarea ​si animatia ​(10p)+    * Amplasarea ​și animația ​(5p)
     * Colectarea (10p)     * Colectarea (10p)
-    * Afisarea ​scorului ​in coltul ​din dreapta sus (10p) +    * Afișarea ​scorului ​în colțul ​din dreapta sus (10p) 
-  * Iluminarea scenei cu mai multe surse de lumina ​de tip point si spot (30p)+  * Iluminarea scenei cu mai multe surse de lumină ​de tip point și spot (30p)
  
 <note important>​ <note important>​
Line 101: Line 103:
   * În cazul în care arhiva tot depășește limita de 20MB (nu ar trebui), puteți să ștergeți și folderul __**/​libs**__ sau __**/​Resources**__ întrucât se pot adăuga la testare. Nu este recomandat să faceți acest lucru întrucât îngreunează mult testarea în cazul în care versiunea curentă a bibliotecilor/​resurselor diferă de versiunea utilizată la momentul scrierii temei.   * În cazul în care arhiva tot depășește limita de 20MB (nu ar trebui), puteți să ștergeți și folderul __**/​libs**__ sau __**/​Resources**__ întrucât se pot adăuga la testare. Nu este recomandat să faceți acest lucru întrucât îngreunează mult testarea în cazul în care versiunea curentă a bibliotecilor/​resurselor diferă de versiunea utilizată la momentul scrierii temei.
 </​note>​ </​note>​
-</​hidden>​ 
egc/teme/2020/03.1608213432.txt.gz · Last modified: 2020/12/17 15:57 by bogdan.teaca
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