Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
statnice:bakalar:b4b39hry [2025/05/28 22:22] – [6. Animační křivky] zapleka3statnice:bakalar:b4b39hry [2025/06/06 21:23] (current) zapleka3
Line 1: Line 1:
-==== Komponenty herního enginu, herní smyčka. Detekce kolizí a základy herní fyziky. Reprezentace a výpočet animací. Základní optimalizační metody pro herní engine. ====+====== Komponenty herního enginu, herní smyčka. Detekce kolizí a základy herní fyziky. Reprezentace a výpočet animací. Základní optimalizační metody pro herní engine. ======
  
 [[https://fel.cvut.cz/cz/education/bk/predmety/46/99/p4699006.html|B4B39HRY]] [[https://cw.fel.cvut.cz/wiki/courses/b4b39hry/lectures/start|Webové stránky předmětu]] [[https://fel.cvut.cz/cz/education/bk/predmety/46/99/p4699006.html|B4B39HRY]] [[https://cw.fel.cvut.cz/wiki/courses/b4b39hry/lectures/start|Webové stránky předmětu]]
Line 662: Line 662:
   * **Neprůhledné objekty**: odložené vykreslování.   * **Neprůhledné objekty**: odložené vykreslování.
   * **Průhledné objekty**: dopředné vykreslování.   * **Průhledné objekty**: dopředné vykreslování.
 +  * **Post-process**: Tone mapping (HDR, korekce barev), Screen space motion blur / depth of field, FXAA (antialising jako postprocess s detekcí hran), Exposure, glow, gamma, etc.
  
 ==== 3. Optimalizace pomocí LOD ==== ==== 3. Optimalizace pomocí LOD ====
  
-LOD (Level of Detail) – různé úrovně detailu modelu podle vzdálenosti od kamery.+**LOD (Level of Detail)** je technika pro snižování zátěže GPU tím, že se místo plně detailního modelu používá zjednodušená verze podle vzdálenosti od kamery.
  
-  * **Diskrétní LOD** – předpočítané verze modelu, přepínání mezi nimi (může být viditelné). +=== Diskrétní LOD === 
-  * **Spojité LOD** – plynulá změna detailu za běhu, výpočetně náročnější (napřNanite v UE5). +  Několik předpočítaných verzí modelu (např. LOD0 – detailníLOD1 – střední, LOD2 – hrubý). 
-  * Optimalizace také pomocí: +  * Přepínání může být viditelné (tzv. popping), řeší se pomocí: 
-    * **Normal map, bump map** – náhrada detailní geometrie texturou+    * **Alpha blending** – plynulý přechod pomocí průhlednosti
-    * **Mip-mapy, atlasy** – zmenšené verze textur, +    * **Bitové masky** – postupné skrývání detailů. 
-    * **Indexované geometrie** – snížení počtu volání.+  * LOD modely lze generovat automaticky (např. Blender, MeshLab). 
 + 
 +=== Spojité LOD === 
 +  * Geometrie je dynamicky zjednodušována za běhu (např. přepočtem). 
 +  * Plynulé přechody bez skoků v detailech. 
 +  * Výpočetně náročné, ale vizuálně kvalitní. 
 +  * Příklady: **UE5 Nanite** – hierarchická rasterizace a culling mikropolygony. 
 + 
 +=== Pseudo-spojité LOD === 
 +  * Kombinace hierarchických LOD a clusterů. 
 +  * Různé části modelu (clusterymají vlastní LOD
 +  * Dynamicky přepínány podle viditelnosti a detailu. 
 + 
 +=== Další optimalizační techniky === 
 +  * **Normal map, bump map** – imitují detaily pomocí textursnižují potřebu polygonů. 
 +  * **Mip-mapy** – předpočítané verze textur různých velikostízlepšují výkon i kvalitu. 
 +  * **Texturové atlasy** – sloučení více textur do jedné, snižují počet přepínání textur. 
 +  * **Indexovaná geometrie** – opětovné použití vrcholů pomocí indexů, snižuje paměťové nároky a volání
 + 
 +LOD je klíčovým prvkem pro škálování grafické náročnosti a udržení plynulého výkonu při zobrazování rozsáhlých scén.
  
 ==== 4. Předpočítané osvětlení a sondy odrazu ==== ==== 4. Předpočítané osvětlení a sondy odrazu ====
Line 691: Line 711:
 ==== 5. Redukování podle viditelnosti (Culling) ==== ==== 5. Redukování podle viditelnosti (Culling) ====
  
-Culling **vyloučení neviditelných objektů** z renderingu.+**Culling** je technika pro zvýšení výkonu tím, že **neviditelné objekty nejsou vůbec posílány na vykreslení**. Typicky se jedná o objekty mimo zorné pole nebo zakryté jinými objekty.
  
-=== View frustum culling ===+=== View Frustum Culling === 
 +  * Kontroluje, zda je objekt uvnitř **zorného jehlanu (frustum)** kamery. 
 +  * Objekty zcela mimo frustum jsou **vynechány z renderingu**. 
 +  * Používá se obvykle jako **první filtr** při vykreslování scény.
  
-  Testujemezda objekt leží v **pohledovém jehlanu** (frustum kamery). +=== Occlusion Culling === 
-  Objekty mimo frustum se **nevykreslují**.+  Odstraňuje objektykteré jsou **zakryty jinými** a tudíž nejsou viditelné. 
 +  Může probíhat: 
 +    **Offline** – rozdělení scény na **pohledové buňky** a výpočet **PVS** (Potentially Visible Set). 
 +    * **Online** – výpočet **za běhu** pomocí: 
 +      * **Depth bufferu**, **hierarchického Z-bufferu**, nebo 
 +      * **softwarové rasterizace** s jednoduchými tvary (occludery).
  
-=== Occlusion culling === +=== Potenciálně Viditelné Množiny (PVS) === 
- +  * Pro každou prostorovou **buňku** se předem určí množina potenciálně viditelných objektů. 
-  * Testování, zda objekt **není zakryt jiným**. +  * Při běhu se pak **vykreslují jen tyto objekty**.
-  * Může být: +
-    * **Offline** – rozdělení scény na buňky (PVS = Potentially Visible Set), +
-    * **Online** – výpočet za běhu (např. pomocí depth bufferu). +
- +
-=== Potenciálně viditelné množiny (PVS) === +
- +
-  * Pro každou **buňku prostoru** se předem určí množina objektů, které mohou být viditelné+
-  * Při běhu se vykreslí pouze tyto objekty.+
   * Výpočet:   * Výpočet:
-    * **Offline** – náročný, ale velmi efektivní při běhu. +    * **Offline** – náročný výpočetně, ale efektivní při běhu. 
-    * **Online** – rychlejší, ale méně přesný+    * **Online** – rychlejší, vhodný pro dynamické scény, ale méně přesný.
- +
-=== Hierarchické zpracování === +
- +
-  * Používá se hierarchie prostorových struktur (např. octree, kd-tree). +
-  * Redukce počtu testů pomocí **konzistence mezi snímky** – tzv. **coherent hierarchy**.+
  
 +=== Hierarchické Zpracování a Konzistence ===
 +  * Scéna je strukturována pomocí prostorových hierarchií (např. **Octree**, **kd-tree**).
 +  * Efektivní redukce díky **coherent hierarchy** – využití podobnosti mezi snímky.
 +  * Pomáhá omezit opakované testy pro podobné oblasti.
Navigation

Playground

QR Code
QR Code statnice:bakalar:b4b39hry (generated for current page)