Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b0b39pgr [2025/05/27 12:57] – [7. Metody stínování] zapleka3 | statnice:bakalar:b0b39pgr [2025/05/27 13:08] (current) – zapleka3 | ||
---|---|---|---|
Line 129: | Line 129: | ||
**Cube mapping** je dnes standard díky své univerzálnosti a podpoře dynamických odrazů v real-time grafice. | **Cube mapping** je dnes standard díky své univerzálnosti a podpoře dynamických odrazů v real-time grafice. | ||
- | |||
- | . | ||
- | |||
- | . | ||
===== 2. Programování pomocí shaderů ===== | ===== 2. Programování pomocí shaderů ===== | ||
Line 230: | Line 226: | ||
\[ | \[ | ||
R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} | R_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & 0 \\ \sin\theta & \cos\theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} | ||
- | \] | + | \] |
- | * . | + | |
- | * . | + | |
* **Škálování: | * **Škálování: | ||
\[ | \[ | ||
Line 292: | Line 286: | ||
O_y = y \frac{h}{2} + \frac{h}{2} | O_y = y \frac{h}{2} + \frac{h}{2} | ||
\] | \] | ||
- | | ||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
==== 5. Souřadné systémy a jejich transformace ==== | ==== 5. Souřadné systémy a jejich transformace ==== | ||
Line 400: | Line 368: | ||
* **Použití kvaternionů místo Eulerových úhlů.** | * **Použití kvaternionů místo Eulerových úhlů.** | ||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
==== 8. Interpolace translace a rotace ==== | ==== 8. Interpolace translace a rotace ==== | ||
Line 646: | Line 601: | ||
\] | \] | ||
* Vektor světla \( \vec{l} \) je normalizovaný směr ke světelnému zdroji. | * Vektor světla \( \vec{l} \) je normalizovaný směr ke světelnému zdroji. | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
=== 6.2 Bodové světlo (Point Light) === | === 6.2 Bodové světlo (Point Light) === | ||
Line 724: | Line 660: | ||
* **Nevýhoda** – vyšší výpočetní náročnost. | * **Nevýhoda** – vyšší výpočetní náročnost. | ||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
- | |||
- | . | ||
===== 5. Základní parametrické křivky ===== | ===== 5. Základní parametrické křivky ===== | ||
{{: | {{: | ||
Line 769: | Line 692: | ||
* **Spojitost mezi segmenty** je klíčová pro zachování vizuálně plynulého tvaru celé křivky. | * **Spojitost mezi segmenty** je klíčová pro zachování vizuálně plynulého tvaru celé křivky. | ||
- | {{: | + | {{: |
{{: | {{: | ||
=== Parametrická spojitost (C) === | === Parametrická spojitost (C) === | ||
- | {{: | + | {{: |
Zohledňuje **směr i velikost** derivací (rychlost, zrychlení). Pokud je parametrická spojitost splněna, je zaručena i geometrická spojitost. | Zohledňuje **směr i velikost** derivací (rychlost, zrychlení). Pokud je parametrická spojitost splněna, je zaručena i geometrická spojitost. | ||
Line 822: | Line 745: | ||
* Zajišťuje hladké přechody mezi body s parametrickou spojitostí **C1**. | * Zajišťuje hladké přechody mezi body s parametrickou spojitostí **C1**. | ||
* Velmi často se používá při animacích pohybu kamery, objektů nebo částic podél cesty definované body. | * Velmi často se používá při animacích pohybu kamery, objektů nebo částic podél cesty definované body. | ||
- | |||
==== 4. Aproximační křivky ==== | ==== 4. Aproximační křivky ==== | ||
Line 834: | Line 756: | ||
{{: | {{: | ||
- | {{: | + | {{: |
Křivka definovaná pomocí Bernsteinových polynomů: | Křivka definovaná pomocí Bernsteinových polynomů: | ||
Line 879: | Line 801: | ||
* Umožňuje rozdělit křivku na dvě menší v libovolném parametru \( t \). | * Umožňuje rozdělit křivku na dvě menší v libovolném parametru \( t \). | ||
* Používá se při adaptivním vykreslování a vektorových editorech. | * Používá se při adaptivním vykreslování a vektorových editorech. | ||
- | * {{: | ||
**Rozdíl: | **Rozdíl: | ||
Line 895: | Line 816: | ||
{{: | {{: | ||
- | {{: | + | {{: |
Speciální případ uniformního kubického B-Spline: | Speciální případ uniformního kubického B-Spline: | ||
Line 939: | Line 860: | ||
\] | \] | ||
- | Kde: | ||
* \( P_i \) jsou **kontrolní body** | * \( P_i \) jsou **kontrolní body** | ||
* \( w_i \) jsou jejich **váhy** – čím větší váha, tím více křivka přiléhá k danému bodu | * \( w_i \) jsou jejich **váhy** – čím větší váha, tím více křivka přiléhá k danému bodu | ||
Line 953: | Line 873: | ||
NURBS jsou dnes **standardem v CAD systémech, 3D grafice a průmyslovém návrhu**, protože spojují přesnost, flexibilitu a efektivní výpočet. | NURBS jsou dnes **standardem v CAD systémech, 3D grafice a průmyslovém návrhu**, protože spojují přesnost, flexibilitu a efektivní výpočet. | ||
- | |||
- | **Další možnosti řízení tvaru NURBS křivky:** | ||
- | |||
- | * **Opakování kontrolních bodů** | ||
- | * Pokud některý **kontrolní bod opakujeme vícekrát** za sebou, křivka se k němu více přiblíží – v extrému jím může i **procházet**. Toto chování se podobá uniformním B-Spline, kde opakované body fixují směr nebo tvar. | ||
- | * Vhodné např. pro ostré zlomy nebo přechody mezi částmi modelu. | ||
- | |||
- | * **Opakování hodnot v uzlovém vektoru** | ||
- | * Opakované uzlové hodnoty (např. stejné číslo vícekrát za sebou) snižují hladkost křivky v daném místě. | ||
- | * Pokud uzel opakujeme \( p \)-krát (kde \( p \) je stupeň křivky), dochází ke **snížení spojitosti až na C0** a křivka může v tomto bodě **přesně projít kontrolním bodem**. | ||
- | |||
- | |||
- | |||
- |