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)