The wiki page is under active construction, expect bugs.

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:30] – [3. Optimalizace pomocí LOD] 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 668: Line 668:
 **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. **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 =====+=== Diskrétní LOD ===
   * Několik předpočítaných verzí modelu (např. LOD0 – detailní, LOD1 – střední, LOD2 – hrubý).   * Několik předpočítaných verzí modelu (např. LOD0 – detailní, LOD1 – střední, LOD2 – hrubý).
   * Přepínání může být viditelné (tzv. popping), řeší se pomocí:   * Přepínání může být viditelné (tzv. popping), řeší se pomocí:
Line 675: Line 675:
   * LOD modely lze generovat automaticky (např. Blender, MeshLab).   * LOD modely lze generovat automaticky (např. Blender, MeshLab).
  
-===== Spojité LOD =====+=== Spojité LOD ===
   * Geometrie je dynamicky zjednodušována za běhu (např. přepočtem).   * Geometrie je dynamicky zjednodušována za běhu (např. přepočtem).
   * Plynulé přechody bez skoků v detailech.   * Plynulé přechody bez skoků v detailech.
Line 681: Line 681:
   * Příklady: **UE5 Nanite** – hierarchická rasterizace a culling mikropolygony.   * Příklady: **UE5 Nanite** – hierarchická rasterizace a culling mikropolygony.
  
-===== Pseudo-spojité LOD =====+=== Pseudo-spojité LOD ===
   * Kombinace hierarchických LOD a clusterů.   * Kombinace hierarchických LOD a clusterů.
   * Různé části modelu (clustery) mají vlastní LOD.   * Různé části modelu (clustery) mají vlastní LOD.
   * Dynamicky přepínány podle viditelnosti a detailu.   * Dynamicky přepínány podle viditelnosti a detailu.
  
-===== Další optimalizační techniky =====+=== Další optimalizační techniky ===
   * **Normal map, bump map** – imitují detaily pomocí textur, snižují potřebu polygonů.   * **Normal map, bump map** – imitují detaily pomocí textur, snižují potřebu polygonů.
   * **Mip-mapy** – předpočítané verze textur různých velikostí, zlepšují výkon i kvalitu.   * **Mip-mapy** – předpočítané verze textur různých velikostí, zlepšují výkon i kvalitu.
Line 711: 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)