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:17] – [5. Skinning (Linear Blend Skinning)] 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 589: | Line 589: | ||
| - | ==== 6. Animační křivky ==== | + | ==== 6. Animační křivky, princip a využití |
| - | Animační křivky určují, jak se transformace mění mezi klíčovými snímky. | + | **Animační křivky** určují |
| - | | + | ===== Požadavky ===== |
| - | * **Catmull–Rom spline** – prochází dvěma | + | |
| + | | ||
| + | | ||
| + | |||
| + | ===== Lineární interpolace ===== | ||
| + | * Jednoduchá, | ||
| + | * Nevhodná pro přirozený pohyb. | ||
| + | |||
| + | ===== Hermitova kubika | ||
| + | | ||
| + | * Výhodná pro řízený a plynulý přechod | ||
| + | * Umožňuje snadné nastavení rychlosti nástupu a odeznění. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Catmull–Rom spline | ||
| + | | ||
| + | * Každý segment | ||
| + | * Spojitá první derivace | ||
| + | * Vyžaduje alespoň čtyři body (první a poslední slouží k výpočtu tečen). | ||
| + | |||
| + | {{: | ||
| + | |||
| + | **Použití**: | ||
| + | * interpolace transformací v čase (rotace, pozice), | ||
| + | * řízení kamery, | ||
| + | * fyzikálně věrohodné trajektorie, | ||
| + | * animace parametrů (např. zoom, světlo), | ||
| + | * procedurální pohyby. | ||
| + | |||
| + | Křivky jsou zásadní pro dosažení realistického nebo stylizovaného pohybu bez nutnosti ručního nastavování každého snímku. | ||
| - | Používají se pro: | ||
| - | * interpolaci transformací v čase, | ||
| - | * řízení pohybu kamery, | ||
| - | * procedurální animace. | ||
| ===== 4. Základní optimalizační metody pro herní engine ===== | ===== 4. Základní optimalizační metody pro herní engine ===== | ||
| Line 636: | 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**: | ||
| ==== 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 665: | 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. | ||