Differences

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

Link to this comparison view

ipg:tema:2025 [2025/12/08 18:24]
andrei.lambru
ipg:tema:2025 [2025/12/08 20:44] (current)
andrei.lambru
Line 7: Line 7:
  
 În cadrul acestei teme, **veți avea de implementat un joc în care aveți libertate totală în concepția și alegerea tematicii lui vizuale** :) . Jocul realizat de voi trebuie să conțină un set de elemente vizuale obligatorii,​ dar pe care puteți să le adaptați la tematica aleasă de voi. Mai jos, aveți descrierea acestor elemente vizuale, împreună cu câteva indicații de implementare. Mult succes :) ! În cadrul acestei teme, **veți avea de implementat un joc în care aveți libertate totală în concepția și alegerea tematicii lui vizuale** :) . Jocul realizat de voi trebuie să conțină un set de elemente vizuale obligatorii,​ dar pe care puteți să le adaptați la tematica aleasă de voi. Mai jos, aveți descrierea acestor elemente vizuale, împreună cu câteva indicații de implementare. Mult succes :) !
- 
-<​hidden>​ 
-Elementele vizuale obligatorii sunt: 
-  * Existenta a cel putin 5 elemente de geometrie create din cod si pentru care se aplica texturi si se calculeaza iluminarea; 
-    * Un element construit din cel putin un cub redimensionat;​ 
-    * Un element construit din cel putin 3 cuburi redimensionate;​ 
-    * Un element construit din cel putin 3 cuburi redimensionate,​ in care cel putin unul dintre acestea are o animatie continua; 
-    * Un element construit din cel putin 3 cuburi redimensionate,​ ce contine cel putin o sursa de lumina; 
-    * Un element construit din cel putin 3 cuburi redimensionate,​ ce contine cel putin o sursa de lumina cu un comportament de iluminare ce se modifica continuu; 
-  * Existenta a cel putin unui personaj care sa aiba un set de animatii continue; 
-  * Existenta unei curburi pentru geometria lumii; 
-  * Existenta unor multiple surse de iluminare de culori diferite; 
-    * Cel putin 10 surse de lumina pentru care nu se creeaza umbre la orice moment de timp; 
-    * Cel putin 3 surse de luminca pentru care se calculeaza umbre la orice moment de timp; 
-  * Existenta unui efect de post-procesare. 
-</​hidden>​ 
  
 <note tip> <note tip>
 Concepția jocului este //**în totalitate**//​ la alegerea voastră. Tema aceasta nu impune niciun joc propriu-zis. Va trebui sa concepeți voi unul :) . De asemenea, tematica jocului este în totalitate la alegerea voastră. Concepția jocului este //**în totalitate**//​ la alegerea voastră. Tema aceasta nu impune niciun joc propriu-zis. Va trebui sa concepeți voi unul :) . De asemenea, tematica jocului este în totalitate la alegerea voastră.
  
-În total, 1 punct din cele 3 puncte ale temei, după cum se poate vedea mai jos, se alocă pentru comportamentul de joc ales de voi. Astfel, vă încurajez să fiți cât mai creativi :) !+În total, 1 punct din cele 3 puncte ale temei, după cum se poate vedea în cadrul baremului de mai jos, se alocă pentru comportamentul de joc ales de voi și pentru complexitatea vizuală a jocului. Astfel, vă încurajez să fiți cât mai creativi :) !
  
-Punctajul pentru această temă poate fi extins până la 4 puncte. Pe lângă cele 3 puncte de bază, ​orice rezultat ​bun din punct de vedere ​calitativ ​poate crește ​cu până la 1 punct bonus.+Punctajul pentru această temă poate fi extins până la 4 puncte. Pe lângă cele 3 puncte de bază, ​un joc cu o calitate ​bună, în special ​din punct de vedere ​al elementelor de programare a graficii, ​poate obține ​cu până la 1 punct bonus.
 </​note>​ </​note>​
  
Line 36: Line 20:
 ==== Funcționalități obligatorii (3 puncte) ==== ==== Funcționalități obligatorii (3 puncte) ====
  
-  * Desenare ​elemente vizuale ​(0.5p total) +  * Desenare ​obiecte ​(0.5p total) 
-    * Desenare geometrie ​element ​- 0.1p per element, conform descrierii de mai jos+    * Desenare geometrie ​obiecte ​- 0.1p per obiect, conform descrierii de mai jos
   * Curbură geometrie lume virtuală (0.3p)   * Curbură geometrie lume virtuală (0.3p)
   * Animații personaj (0.75p total)   * Animații personaj (0.75p total)
Line 43: Line 27:
     * Animații personaj - 0.2p per animație     * Animații personaj - 0.2p per animație
   * Iluminare geometrie (0.45p total)   * Iluminare geometrie (0.45p total)
-    * Iluminare cu cel puțin 10 surse de lumină de culori diferite, pentru care nu se calculează umbre - 0.15p +    * Iluminare cu cel puțin 10 surse de lumină ​la orice moment ​de timp, pentru care nu se calculează umbre - 0.15p 
-    * Iluminare cu cel puțin 3 surse de lumină pentru care se calculează umbre - 0.3p +    * Iluminare cu cel puțin 3 surse de lumină ​la orice moment de timp, pentru care se calculează umbre - 0.3p 
-  * Comportament de joc, complexitate ​construcție geometrie, creativitate ​în utilizarea tehnicilor studiate în cadrul acestui curs :) (1p)+  ​* Joc (1p total) 
 +    ​* Comportament de joc - 0p...0.5p 
 +    * Complexitate ​construcție geometrie ​- 0p...1p 
 +    * Creativitate ​în utilizarea tehnicilor studiate în cadrul acestui curs :) - 0p...1p 
 + 
 +<note tip> 
 +Ultima cerință din barem are punctaj dinamic. Altfel spus, puteți obține totalul de 1 punct pe baza complexității doar a unui subset din cerințele menționate. 
 + 
 +Astfel, vă puteți concentra pe anumite aspecte ale jocului mai mult decât pe altele, cu observația că elementele ce țin de domeniul de programare a graficii vor fi notate mai consistent față de cele ce țin de domeniul de programare a jocurilor video. De asemenea, aspectul vizual obținut în urma utilizării tehnicilor studiate în cadrul acestui curs vor fi punctate consistent :
 +</​note>​
  
 ===== Detalii de implementare ===== ===== Detalii de implementare =====
  
-==== Construcție ​elemente vizuale ​====+==== Construcție ​obiecte ​====
  
-Trebuie să realizați cel puțin //**5 elemente vizuale**//.+Trebuie să construiți geometria pentru ​cel puțin //**5 obiecte**// din lumea virtuală a jocului.
  
 <​note>​ <​note>​
-Pentru simplitate, vom specifica aici faptul că toate elementele vizuale ​descrise mai jos: +Pentru simplitate, vom specifica aici faptul că toate obiectele ​descrise mai jos: 
-  * Trebuie construite exclusiv din cod. NU este permisă încărcarea unor modele 3D din fișiere pentru ​realizarea elementelor vizuale.+  * Trebuie construite exclusiv din cod. NU este permisă încărcarea unor modele 3D din fișiere pentru ​desenarea obiectelor obligatorii.
   * Trebuie să fie colorate prin aplicarea a cel puțin unei texturi;   * Trebuie să fie colorate prin aplicarea a cel puțin unei texturi;
   * În descrierea de mai jos, complexitatea geometriei este descrisă prin cuburi/​paralelipipede,​ dar pentru creșterea punctajului de la ultima cerință din barem, se încurajează utilizarea unor forme geometrice mai complexe precum discurile de cerc, cilindrii, conurile :) ...   * În descrierea de mai jos, complexitatea geometriei este descrisă prin cuburi/​paralelipipede,​ dar pentru creșterea punctajului de la ultima cerință din barem, se încurajează utilizarea unor forme geometrice mai complexe precum discurile de cerc, cilindrii, conurile :) ...
-  * Așezarea componentelor din care este realizat un element vizual, împreună cu texturile aplicate la desenarea componentelor,​ trebuie să fie consistente cu comportamentul și tematica jocului. Altfel spus, toate elementele vizuale ​trebuie să aibă sens în lumea virtuală a jocului, nu doar să fie introduse pentru respectarea cerinței minime :) .+  * Așezarea componentelor din care este realizat un obiect, împreună cu texturile aplicate la desenarea componentelor,​ trebuie să fie consistente cu comportamentul și tematica jocului. Altfel spus, toate obiectele ​trebuie să aibă sens în lumea virtuală a jocului, nu doar să fie introduse pentru respectarea cerinței minime :) .
 </​note>​ </​note>​
  
-Cel mai simplu ​element vizual ​din lumea virtuală a jocului poate fi realizat sub forma unui cub sau a unui paralelipiped. Paralelipipedul se poate obține din geometria unui cub, prin desenarea celui din urmă cu o transformare ​de redimensionare ​neuniformă.+Cel mai simplu ​obiect ​din lumea virtuală a jocului poate fi realizat sub forma unui cub sau a unui paralelipiped. Paralelipipedul se poate obține din geometria unui cub, prin desenarea celui din urmă cu o transformare neuniformă de modificare de scară.
  
-Următorul ​element vizual ​ce trebuie construit este compus din cel puțin 3 cuburi sau paralelipipede.+Următorul ​obiect ​ce trebuie construit este compus din cel puțin 3 cuburi sau paralelipipede.
  
-Un alt element vizual ​trebuie să fie construit din cel puțin 3 cuburi sau paralelipipede,​ similar cu cel descris anterior, dar în situația acestuia, cel puțin o componentă din care este construit trebuie să aibă o animație continuă.+Un alt obiect ​trebuie să fie construit din cel puțin 3 cuburi sau paralelipipede,​ similar cu cel descris anterior, dar în situația acestuia, cel puțin o componentă din care este construit trebuie să aibă o animație continuă.
  
-Un alt element element vizual ​trebuie construit din cel puțin 3 cuburi sau paralelipipede și trebuie să conțină cel puțin o sursă de lumină atașată de el. Această sursă de lumină trebuie să poată lumina orice obiect din lumea virtuală.+Un alt obiect ​trebuie construit din cel puțin 3 cuburi sau paralelipipede și trebuie să conțină cel puțin o sursă de lumină atașată de el. Această sursă de lumină trebuie să poată lumina orice obiect din lumea virtuală.
  
-Similar cu elementul vizual ​descris anterior, ultimul ​element vizual ​obligatoriu trebuie să fie construit din cel puțin 3 cuburi sau paralelipipede și să conțină cel puțin o sursă de lumină atașată de el, care să aiba un comportament de iluminare ce se modifică continuu. Posibile modificări ale sursei ​comportamentului de iluminare pot fi schimbarea culorii/​intensității de iluminare.+Similar cu obiectul ​descris anterior, ultimul ​obiect ​obligatoriu trebuie să fie construit din cel puțin 3 cuburi sau paralelipipede și să conțină cel puțin o sursă de lumină atașată de el, care să aibă un comportament de iluminare ce se modifică continuu. Posibile modificări ale comportamentului de iluminare pot fi schimbarea culorii/​intensității de iluminare.
  
 <note tip> <note tip>
-O parte din punctajul ultimei cerințe din barem este proportională cu complexitatea geometriei construite :) . Astfel, //**vă încurajez să vă folosiți creativitatea pentru crearea unei lumi virtuale cât mai plăcute și interesante**//,​ conform tematicii alese de voi pentru joc.+O parte din punctajul ultimei cerințe din barem este proporțională cu complexitatea geometriei construite :) . Astfel, //**vă încurajez să vă folosiți creativitatea pentru crearea unei lumi virtuale cât mai plăcute și interesante**//,​ conform tematicii alese de voi pentru joc.
 </​note>​ </​note>​
  
Line 93: Line 86:
  
  
-<​note>​+<​note ​tip>
   * $Pozitie_v$ - poziția în spațiul lumii a vârfului procesat de vertex shader   * $Pozitie_v$ - poziția în spațiul lumii a vârfului procesat de vertex shader
-  * $Pozitie_{camera}$ - poziția în spațiul lumii a personajului controlat de jucător+  * $Pozitie_{camera}$ - poziția în spațiul lumii a camerei
   * $\vec{control}$ - un vector de control al direcției în care se realizează curbura   * $\vec{control}$ - un vector de control al direcției în care se realizează curbura
-    * Cateva exemple de valori pentru acest vector de control pot fi: În situația în care se dorește realizarea curburii în direcția jos, se utilizează vectorul ​ $\vec{control}= ​ \begin{bmatrix} 0 & -1 & 0 \end{bmatrix} $ . În situația în care se dorește realizarea curburii în stânga-jos,​ relativ la axele principale, vectorul este   ​$\vec{control}= ​ \begin{bmatrix} -1 & -1 & 0 \end{bmatrix} $ . 
   * $factorCurbura$ - un factor ce controlează curbura geometriei   * $factorCurbura$ - un factor ce controlează curbura geometriei
 </​note>​ </​note>​
 +
 +Câteva exemple de valori pentru vectorul de control pot fi:
 +  * În situația în care se dorește realizarea curburii în direcția jos, relativ la axele de coordonate, se utilizează vectorul ​ $\vec{control}= ​ \begin{bmatrix} 0 & -1 & 0 \end{bmatrix} $ .
 +  * În situația în care se dorește realizarea curburii în stânga-jos,​ relativ la axele principale, vectorul este   ​$\vec{control}= ​ \begin{bmatrix} -1 & -1 & 0 \end{bmatrix} $ .
  
 Factorul de curbură este proporțional cu dimensiunea obiectelor din lume. O valoare posibilă pentru factorul de curbură este 0.02. Factorul de curbură este proporțional cu dimensiunea obiectelor din lume. O valoare posibilă pentru factorul de curbură este 0.02.
Line 132: Line 128:
 === Animații === === Animații ===
  
-Geometria personajului trebuie **să realizeze cel puțin 3 tipuri animații distincte**. Toate animatiile ​trebuie ​sa fie continue. Acestea trebuie ​sa fie realizate prin utilizarea a cel putin unei transformari ​de rotatie+Geometria personajului trebuie **să realizeze cel puțin 3 tipuri ​de animații distincte**. Toate animațiile ​trebuie ​să fie continue. Acestea trebuie ​să fie realizate prin utilizarea a cel puțin ​unei transformări ​de rotație
  
-Un exemplu de animație posibilă pentru personajul a cărui geometrie este prezentată mai sus poate fi este o animatie ​de deplasare a personajului,​ precum cea consultată ​mai jos.+Un exemplu de animație posibilă pentru personajul a cărui geometrie este prezentată mai sus este o animație ​de deplasare a personajului,​ precum cea de mai jos.
  
 {{ :​ipg:​tema:​animation1.gif?​600 |}} {{ :​ipg:​tema:​animation1.gif?​600 |}}
Line 152: Line 148:
 În calculele de iluminare a geometriei, trebuie utilizată //​componenta ambientală//,​ //​componenta difuză// și //​componenta speculară//​. Se pot utiliza modelele de iluminare deja analizate. Dacă se dorește, se poate înlocui calculul de iluminare pentru oricare din cele 3 componente cu un alt model de iluminare ce oferă rezultate vizuale superioare :) . Utilizarea unor astfel de modele de iluminare se punctează suplimentar. În calculele de iluminare a geometriei, trebuie utilizată //​componenta ambientală//,​ //​componenta difuză// și //​componenta speculară//​. Se pot utiliza modelele de iluminare deja analizate. Dacă se dorește, se poate înlocui calculul de iluminare pentru oricare din cele 3 componente cu un alt model de iluminare ce oferă rezultate vizuale superioare :) . Utilizarea unor astfel de modele de iluminare se punctează suplimentar.
  
-In cadrul acestei teme, trebuie ​sa realizati o lume in care la orice moment de timp sunt prezente: +În cadrul acestei teme, trebuie ​să realizați mediul unei lumi virtuale în care la orice moment de timp sunt prezente: 
-  * Cel putin 10 surse de lumina ​de tip point/spot, ce au culori diferite intre ele. Pentru aceste surse de lumina ​nu trebuie calculate umbre. +  * Cel puțin ​10 surse de lumină punctiforme/​de tip spot. Pentru aceste surse de lumină, ​nu trebuie calculate umbre; 
-  * Cel putin 3 surse de lumina ​de tip point/spot, ce au culori diferite intre ele pentru care se calculeaza ​umbre.+  * Cel puțin ​3 surse de lumină ​de tip spot pentru care se calculează ​umbre.
  
 === Transformarea vectorului normal în spațiul lumii === === Transformarea vectorului normal în spațiul lumii ===
Line 185: Line 181:
 === Umbre calculate pentru surse multiple === === Umbre calculate pentru surse multiple ===
  
-Consideram ​faptul ​ca sursele de lumina ​pentru care se calculeaza ​umbre sunt de tip spot. La calcularea umbrelor, ​aveti in vedere ​sa exista ​un numar relativ mic de astfel de surse de lumina si sa pastrati la rezolutia hartilor ​de iluminare la un nivel care sa permita ​frecventa ​de desenare ​acceptabila.+Considerăm ​faptul ​că sursele de lumină ​pentru care se calculează ​umbre sunt de tip spot. La calcularea umbrelor, ​este recomandat să aveți în vedere ​să introduceți ​un număr ​relativ mic de astfel de surse de lumină și să păstrați rezoluția hărților ​de iluminare la un nivel care să permită ​frecvență ​de desenare ​acceptabilă.
  
 <​hidden>​ <​hidden>​
ipg/tema/2025.1765211063.txt.gz · Last modified: 2025/12/08 18:24 by andrei.lambru
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