Differences

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

Link to this comparison view

ppbg:tema:2024 [2024/12/10 19:51]
andrei.lambru
ppbg:tema:2024 [2024/12/10 19:57] (current)
andrei.lambru
Line 176: Line 176:
 Pentru a realiza procesul de selecție a destinației,​ în canalele de culoare RGB ale celei de-a doua texturi de culoare ale obiectului de tip framebuffer creat de voi, trebuie să se păstreze **coordonata (x, 0, z) a geometriei suport, după pasul de deformare pe baza hărții de înălțime și înainte de deformarea pe baza curburii**. Cele două texturi de culoare pot fi văzute în imaginea de mai jos: Pentru a realiza procesul de selecție a destinației,​ în canalele de culoare RGB ale celei de-a doua texturi de culoare ale obiectului de tip framebuffer creat de voi, trebuie să se păstreze **coordonata (x, 0, z) a geometriei suport, după pasul de deformare pe baza hărții de înălțime și înainte de deformarea pe baza curburii**. Cele două texturi de culoare pot fi văzute în imaginea de mai jos:
  
-{{ :​ppbg:​tema:​terrain5.png?​800 |}}+{{ :​ppbg:​tema:​terrain5.png?​700 |}}
  
 Rezultatul vizual din imagine este obținut după aplicarea deformării pe baza curburii, dar coordonata (x, 0, z) păstrată în cea de-a doua textură de culoare este cea calculată înainte de realizarea curburii. Această coordonată este utilizată pentru specificarea locației de destinație a elicopterului,​ fără să se țină cont de deformarea suprafeței asteroidului. Aceasta din urmă este doar un efect vizual realizat în vertex shader, cum s-a menționat anterior. Rezultatul vizual din imagine este obținut după aplicarea deformării pe baza curburii, dar coordonata (x, 0, z) păstrată în cea de-a doua textură de culoare este cea calculată înainte de realizarea curburii. Această coordonată este utilizată pentru specificarea locației de destinație a elicopterului,​ fără să se țină cont de deformarea suprafeței asteroidului. Aceasta din urmă este doar un efect vizual realizat în vertex shader, cum s-a menționat anterior.
  
-Pentru a extrage coordonata (x, 0, z) din cea de-a doua textură de culoare din obiectul de tip framebuffer creat de voi, la momentul apăsării butonului dreapta de la mouse de către utilizator, trebuie extrasă informația din pixelul ​in dreptul căruia se afla cursorul la momentul apăsării butonului. Codul pentru acest proces arată în felul următor:+Pentru a extrage coordonata (x, 0, z) din cea de-a doua textură de culoare din obiectul de tip framebuffer creat de voi, la momentul apăsării butonului dreapta de la mouse de către utilizator, trebuie extrasă informația din pixelul ​în dreptul căruia se află cursorul la momentul apăsării butonului. Codul pentru acest proces arată în felul următor:
  
 <code cpp> <code cpp>
Line 197: Line 197:
 === Selecție obiect === === Selecție obiect ===
  
-Pentru a realiza procesul de selecție a unui obiect, se păstrează suplimentar în canalul A din cea de-a doua textură de culoare a obiectului de tip framebuffer creat de voi un identificator pentru toate obiectele din scenă. O prezentare ​vizuala ​a acestor identificatori,​ sub formă de nuanțe de gri, se poate vedea în imaginea de mai jos.+Pentru a realiza procesul de selecție a unui obiect, se păstrează suplimentar în canalul A din cea de-a doua textură de culoare a obiectului de tip framebuffer creat de voi un identificator pentru toate obiectele din scenă. O prezentare ​vizuală ​a acestor identificatori,​ sub formă de nuanțe de gri, se poate vedea în imaginea de mai jos.
  
-{{ :​ppbg:​tema:​selection.png?​800 |}}+{{ :​ppbg:​tema:​selection.png?​700 |}}
  
 Nuanțele de gri din cea de-a doua textură de culoare din imaginea de mai sus au scop de prezentare pentru a se putea vizualiza identificatorul sub forma unei culori. În situația în care cea de-a doua textură de culoare conține informație de tip ''​RGBA32F'',​ aceasta permite păstrarea unor valori ce depașesc valoarea 1. Nuanțele de gri din cea de-a doua textură de culoare din imaginea de mai sus au scop de prezentare pentru a se putea vizualiza identificatorul sub forma unei culori. În situația în care cea de-a doua textură de culoare conține informație de tip ''​RGBA32F'',​ aceasta permite păstrarea unor valori ce depașesc valoarea 1.
Line 210: Line 210:
 === Comportament cameră observator === === Comportament cameră observator ===
  
-În situația în care se utilizează framework-ul de laborator, pentru desenarea geometriei din perspectiva camerei observator, se poate utiliza obiectul de tip ''​Camera'',​ după cum urmeaza:+În situația în care se utilizează framework-ul de laborator, pentru desenarea geometriei din perspectiva camerei observator, se poate utiliza obiectul de tip ''​Camera'',​ după cum urmează:
  
 <code cpp> <code cpp>
 auto camera = GetSceneCamera();​ auto camera = GetSceneCamera();​
  
-// pozitia relativa a camerei fata de pozitia ​personajului+// pozitia relativa a camerei fata de pozitia ​elicopterului
 glm::vec3 relativeCameraPosition = ...; glm::vec3 relativeCameraPosition = ...;
  
Line 274: Line 274:
     * Implementare inamici ce se deplaseaza in aer, precum elicopterul controlat de catre jucator     * Implementare inamici ce se deplaseaza in aer, precum elicopterul controlat de catre jucator
     * Implementare actiune de atac a jucatorului si a inamicilor     * Implementare actiune de atac a jucatorului si a inamicilor
 +  * Introducerea iluminarii:
 +    * Introducerea umbrelor
 +    * Introducerea iluminarii volumetrice
   * Orice aduce îmbunătățiri vizuale jocului   * Orice aduce îmbunătățiri vizuale jocului
  
ppbg/tema/2024.1733853118.txt.gz · Last modified: 2024/12/10 19:51 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