Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| statnice:bakalar:b4b39hry [2025/05/28 22:24] – [2. Dopředné a odložené vykreslování] zapleka3 | statnice: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:// | [[https:// | ||
| Line 666: | Line 666: | ||
| ==== 3. Optimalizace pomocí LOD ==== | ==== 3. Optimalizace pomocí LOD ==== | ||
| - | LOD (Level of Detail) | + | **LOD (Level of Detail)** je technika pro snižování zátěže GPU tím, že se místo plně detailního |
| - | * **Diskrétní LOD** – předpočítané verze modelu, | + | === Diskrétní LOD === |
| - | * **Spojité LOD** – plynulá změna detailu | + | |
| - | * Optimalizace také pomocí: | + | * Přepínání může být viditelné |
| - | * **Normal map, bump map** – náhrada detailní geometrie texturou, | + | * **Alpha blending** – plynulý přechod pomocí průhlednosti. |
| - | * **Mip-mapy, atlasy** – zmenšené | + | * **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 | ||
| + | * 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 (clustery) mají vlastní LOD. | ||
| + | * Dynamicky přepínány podle viditelnosti a detailu. | ||
| + | |||
| + | === Další optimalizační techniky === | ||
| + | | ||
| + | * **Mip-mapy** – předpočítané | ||
| + | * **Texturové atlasy** – sloučení více textur do jedné, snižují | ||
| + | * **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 692: | Line 711: | ||
| ==== 5. Redukování podle viditelnosti (Culling) ==== | ==== 5. Redukování podle viditelnosti (Culling) ==== | ||
| - | Culling | + | **Culling** |
| - | === 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. | ||
| - | | + | === Occlusion Culling === |
| - | * Objekty mimo frustum se **nevykreslují**. | + | |
| + | | ||
| + | | ||
| + | * **Online** – výpočet **za běhu** pomocí: | ||
| + | * **Depth bufferu**, **hierarchického Z-bufferu**, | ||
| + | * **softwarové rasterizace** s jednoduchými tvary (occludery). | ||
| - | === Occlusion culling === | + | === Potenciálně |
| - | + | * Pro každou | |
| - | * Testování, | + | * 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ě | + | |
| - | + | ||
| - | * Pro každou **buňku | + | |
| - | * 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ý |
| - | * **Online** – rychlejší, | + | * **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. | ||