This shows you the differences between two versions of the page.
|
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 o 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ă o frecvență de desenare acceptabilă. |
| <hidden> | <hidden> | ||