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:59] – [2. Spojitost křivek] 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 791: | Line 710: | ||
* **G2** – stejné směry a akcelerace, velikosti se mohou lišit. | * **G2** – stejné směry a akcelerace, velikosti se mohou lišit. | ||
- | {{: | + | {{: |
==== 3. Interpolační křivky ==== | ==== 3. Interpolační křivky ==== | ||
Line 826: | 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 838: | Line 756: | ||
{{: | {{: | ||
- | {{: | + | {{: |
Křivka definovaná pomocí Bernsteinových polynomů: | Křivka definovaná pomocí Bernsteinových polynomů: | ||
Line 883: | 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 899: | Line 816: | ||
{{: | {{: | ||
- | {{: | + | {{: |
Speciální případ uniformního kubického B-Spline: | Speciální případ uniformního kubického B-Spline: | ||
Line 943: | 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 957: | 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**. | ||
- | |||
- | |||
- | |||
- |