Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
mgr-szz:in-gra:5-gra [2014/10/27 09:07]
127.0.0.1 upraveno mimo DokuWiki
mgr-szz:in-gra:5-gra [2020/04/12 16:56] (aktuální)
Řádek 1: Řádek 1:
 ====== Zadanie ====== ====== Zadanie ======
-Křivky a plochy. ​Parametrické křivky, ​Interpolační křivky, Hermite, Bezier, Coons, NURBS. Spojitost, změna stupně, podmínky pro hladké navázání. ​Parametrické plochy. Plochy dané okrajemtečné vektory. Bezierovy plochy, B-spline plochy, NURBS. Plátování,​ hladké navázání. Implicitní povrchy, dělené povrchy.+Parametrické křivky, ​Lagrange, Hermite, Bezier, Coons, NURBS. Spojitost, změna stupně, podmínky pro hladké navázání. ​(PB009PA010)
  
 ====== Vypracovanie ====== ====== Vypracovanie ======
Řádek 23: Řádek 23:
  
 Parametricky zadaná kubika má tvar Parametricky zadaná kubika má tvar
-<​math>​x(t) = a_{x}t^{3} +  b_{x}t^{2} +  c_{x}t +  d_{x}</​math>​ +<​math>​x(t) = a_{x}t^{3} +  b_{x}t^{2} +  c_{x}t +  d_{x},</​math>​\\ 
-<​math>​y(t) = a_{x}t^{3} +  b_{x}t^{2} +  c_{x}t +  d_{x}</​math>​ +<​math>​y(t) = a_{y}t^{3} +  b_{y}t^{2} +  c_{y}t +  d_{y},</​math>​\\ 
-<​math>​z(t) = a_{x}t^{3} +  b_{x}t^{2} +  c_{x}t +  d_{x}</​math>,​+<​math>​z(t) = a_{z}t^{3} +  b_{z}t^{2} +  c_{z}t +  d_{z}</​math>,​
 čo môžeme v maticovom tvare zapísať ako čo môžeme v maticovom tvare zapísať ako
 <​math>​Q(t) = \mathbf{T}.\mathbf{C} = \begin{bmatrix}t^{3} & t^{2} & t & 1\end{bmatrix}.\begin{bmatrix}a_{x} & a_{y} & a_{z} \\ b_{x} & b_{y} & b_{z} \\ c_{x} & c_{y} & c_{z} \\ d_{x} & d_{y} & d_{z}\end{bmatrix}</​math>​ <​math>​Q(t) = \mathbf{T}.\mathbf{C} = \begin{bmatrix}t^{3} & t^{2} & t & 1\end{bmatrix}.\begin{bmatrix}a_{x} & a_{y} & a_{z} \\ b_{x} & b_{y} & b_{z} \\ c_{x} & c_{y} & c_{z} \\ d_{x} & d_{y} & d_{z}\end{bmatrix}</​math>​
Řádek 34: Řádek 34:
 ===== Interpolačné krivky ===== ===== Interpolačné krivky =====
  
-Základným ​spôsobom ako interpolovať funkciu zadanú v diskrétnych bodoch je použiť //​**Langrangeov interpolujúci polynóm**//​ (po česky //​interpolač//).+Zá 
 +kladným ​spôsobom ako interpolovať funkciu zadanú v diskrétnych bodoch je použiť //​**Langrangeov interpolujúci polynóm**//​ (po česky //​interpolač//).
  
 {{:​mgr-szz:​in-gra:​lag_inter_1.jpg?​350|Lagrangeova interpolácia}} {{:​mgr-szz:​in-gra:​lag_inter_1.jpg?​350|Lagrangeova interpolácia}}
Řádek 46: Řádek 47:
 ==== Hermite ==== ==== Hermite ====
  
-Najznámejšie interpolačné krivy používané v počítačovej grafike sú Hermitovské krivky, hlavne //​**Hermitovské kubiky**// (tiež aj Fergusonove kubiky). Sú určené dvoma riediacimi bodmi <​math>​P_{0}</​math>,​ <​math>​P_{1}</​math>​ a dvomi dotykovými vektormi <​math>​\vec{p'​}_{0}</​math>,​ <​math>​\vec{p'​}_{1}</​math>​. Body určujú začiatočný a koncový bod krivky, smer a veľkosť vektorov jej vyklenutie. Čím je vektor väčší, tým viac sa k nemu krivka primkýna. Ak sú obidva vektory nulové, jedná sa vlastne o úsečku.+Najznámejšie interpola 
 +čné krivy používané v počítačovej grafike sú Hermitovské krivky, hlavne //​**Hermitovské kubiky**// (tiež aj Fergusonove kubiky). Sú určené dvoma riediacimi bodmi <​math>​P_{0}</​math>,​ <​math>​P_{1}</​math>​ a dvomi dotykovými vektormi <​math>​\vec{p'​}_{0}</​math>,​ <​math>​\vec{p'​}_{1}</​math>​. Body určujú začiatočný a koncový bod krivky, smer a veľkosť vektorov jej vyklenutie. Čím je vektor väčší, tým viac sa k nemu krivka primkýna. Ak sú obidva vektory nulové, jedná sa vlastne o úsečku.
  
 {{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​6/​61/​HermiteBasis.svg/​300px-HermiteBasis.svg.png?​300|Kubické Hermitovské polynómy}} {{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​6/​61/​HermiteBasis.svg/​300px-HermiteBasis.svg.png?​300|Kubické Hermitovské polynómy}}
Řádek 138: Řádek 140:
 (Tento obrázok ze zo slajdov predmetu PB009. Myslím si ale, že tretí príklad je chybne. Možno sa tým chcelo ukázať, že vektory majú rovnakú veľkosť, rozhodne ale nemajú rovnaký smer, takže parametrická spojitosť prvého stupňa tam byť nemôže. Keď tak ma, prosím, opravte. ;-)) (Tento obrázok ze zo slajdov predmetu PB009. Myslím si ale, že tretí príklad je chybne. Možno sa tým chcelo ukázať, že vektory majú rovnakú veľkosť, rozhodne ale nemajú rovnaký smer, takže parametrická spojitosť prvého stupňa tam byť nemôže. Keď tak ma, prosím, opravte. ;-))
  
-===== Parametrické plochy ===== 
- 
-Vyjadrenie plochy môže byť podobne ako u krivky len s doplnením ďalšej dimenzie -- //​explicitné//,​ //​implicitné//​ a //​parametrické//​. 
- 
-**Explicitne** zadaná plocha je vyjadrená funkciou <​math>​z = f(x,​y)</​math>​. 
- 
-**Implicitne** zadaná plocha je vyjadrená rovnicou <​math>​F(x,​y,​z) = 0</​math>​ (podrobnejšie v časti o implicitných plochách). 
- 
-**Parametrickým** vyjaderním plochy <​math>​Q(u,​v)</​math>​ je bodová rovnica dvoch parametrov <​math>​u</​math>​ a <​math>​v</​math>​ nadobúdajúcich hodnoty z intervalu <​math><​0,​1></​math>,​ ktorá je zadaná ako <​math>​Q(u,​v) = [x(u,v), y(u,v), z(u,​v)]</​math>​. 
- 
-//​**Dotykový vektor** (tečný vektor)// <​math>​\vec{q_{u}}(u,​v)</​math>​ v smere parametru <​math>​u</​math>​ k ploche <​math>​Q(u,​v)</​math>​ a dotykový vektor <​math>​\vec{q_{v}}(u,​v)</​math>​ v smere parametru <​math>​v</​math>​ sú určené vzťahmi 
-<​math>​\vec{q_{u}}(u,​v) = \frac{\partial Q(u,​v)}{\partial u}) = \left(\frac{\partial x(u,​v)}{\partial u}, \frac{\partial y(u,​v)}{\partial u}, \frac{\partial z(u,​v)}{\partial u}\right)</​math>,​ 
-<​math>​\vec{q_{v}}(u,​v) = \frac{\partial Q(u,​v)}{\partial v}) = \left(\frac{\partial x(u,​v)}{\partial v}, \frac{\partial y(u,​v)}{\partial v}, \frac{\partial z(u,​v)}{\partial v}\right)</​math>​. 
- 
-Rovnica //​**dotykovej roviny** (tečné roviny)// je určené ako <​math>​T(r,​s) = Q(u,v) + r.\vec{q_{u}} + s.\vec{q_{v}};​ r,s \in R</​math>​. 
-//​**Skruty** (skrutové vektory)// charakterizujú "​vyklenutie"​ plochy v miestach napojenia. Sú definované pomocou zmiešaných parciálnych derivácií ako <​math>​\vec{q_{uv}}(u,​v) = \frac{\partial^{2}Q(u,​v)}{\partial u \partial v}</​math>​. 
-//​**Normálu** (kolmicu)// k ploche v bode <​math>​Q</​math>​ určíme ako normalizovaný vektorový súčin dotykových vektorov, teda <​math>​\vec{n} = \frac{\vec{q_{u}} \times \vec{q_{v}}}{|\vec{q_{u}} \times \vec{q_{v}}|}</​math>​. 
- 
-//**Hlavná krivka** plochy// v smere parametru <​math>​u</​math>​ je každá krivka určená rovnicou <​math>​Q(u,​k)</​math>​ pevného parametru <​math>​k</​math>​ a premenného parametru <​math>​u</​math>​. Analogicky to platí aj pre hlavnú krivku v smere parametru <​math>​v</​math>​. //**Rohy** plochy// sú body <​math>​Q(0,​0)</​math>,​ <​math>​Q(1,​0)</​math>,​ <​math>​Q(0,​1)</​math>​ a <​math>​Q(1,​1)</​math>​. //​**Strany** plochy// <​math>​Q(u,​v)</​math>​ sú hlavné krivky v oboch smeroch, kde pevný parameter má hodnotu <​math>​0</​math>​ alebo <​math>​1</​math>​. Všetky strany dohromady tvoria //**okraj** plochy//. 
- 
-Analógiou naväzovania segmentov a ich skladania do krivky aj plochy sa skladajú z častí, ktoré voláme //​**pláty**//​. Naväzovanie plôch sa nazýva //​plátovanie//​. AJ pri plochách rozoznávame parametrickú spojitosť <​math>​C</​math>​ a gemometrickú spojitosť <​math>​G</​math>​. Napríklad dva pláty sú <​math>​C^{1}</​math>​ spojité, ak majú spoločnú stranu a priečne parciálne derivácie vo všetkých bodoch spoločnej strany sú zhodné. 
- 
-Plochy sa zadávajú //​riadiacimi bodmi// a //​bázovými funkciami//​. Väčšinou sa používajú plochy //​**aproximačné**//​. Interpolácia vo viac ako dvoch dimenziách je náročná a vyžaduje rozsiahle výpočty. //​**Interpolačná**//​ plocha <​math>​P_{ij}</​math>​ má <​math>​(m + 1) \times (n + 1)</​math>​ bodov. Interpoláciou vektorovým polynómom je možné plochu zapísať ako <​math>​\vec{P}(u,​v) = \sum_{i=0}^{m} \sum_{j=0}^{n} b_{ij}.u^{i}.v^{j}</​math>​. 
- 
-Na aproximačné vyjadrenie plôch sa používajú tzv. //​12-vektorový Hermitovský plát// alebo //​16-vektorový//​ (obsahuje navyše 4 skrutové vektory v každom rohu plátu). 
- 
-===== Plochy zadané okrajom ===== 
- 
-Plochy môžu byť zadané aj pomocou všetkých kriviek určujúcich //okraj//, napr. 4 v prípade štvoruholníkového plátu. 
- 
-//​**Bilineárna Coonsova plocha**// je jednoznačne určená štyrmi krivkami <​math>​P(u,​0)</​math>,​ <​math>​P(u,​1)</​math>,​ <​math>​P(0,​v)</​math>​ a <​math>​P(1,​v)</​math>,​ ktoré musia tvoriť uzavretý okraj budúceho plátu. 
-Rovnica, ktorá určuje bilineárnu Coonsovu plochu sa dá zjednodušene zapísať v tvare <​math>​[1-u,​-1,​u].\mathbf{C}.[1-v,​-1,​v]^{T} = 0</​math>,​ kde bod uprostred matice <​math>​\mathbf{C}</​math>​ je hľadaným riešením tejto implicitnej rovnice. Na výpočet bilineárnej plochy však slúži explicitné vyjadrenie tejto rovnice, ktoré môžeme vidieť na obrázku spolu s grafickým znázornením výpočtu. Zásadným problémom plochy je, že zo zadaného okraja nie je možné jednoducho vyjadriť priečne dotykové vektory a teda nie je ľahké vytvoriť hladké spojenie dvoch takýchto plátov. 
- 
-{{:​mgr-szz:​in-gra:​biCoons_surface.jpg?​450|Bilineárna Coonsova plocha}} 
- 
-//​**Bikubická plocha**// je rovnako určená štyrmi krivkami, ale popísaná vzťahom <​math>​[F_{1}(u),​-1,​F_{2}(u)].\mathbf{C}.[F_{1}(v),​-1,​F_{2}(v)]^{T} = 0</​math>,​ kde dané funkcie predstavujú Hermitovské polynómy <​math>​F_{1}(t) = 2t^{3} - 3t^{2} + 1</​math>​ a <​math>​F_{2}(t) = -2t^{3} + 3t^{2}</​math>​. Pre rovnaké dôvody ako v predchádzajúcom prípade, ani tieto plochy sa nepoužívajú na plátovanie so spojitou prvou deriváciou. 
- 
-Až //​**všeobecná bikubická plocha**// (po česky //​obecná//​) umožňuje hladké naväzovanie plátov, keďže je pri nej potrebné zadávať aj dotykové vektory podľa okraja. Okrem 4 spomínaných kriviek ju preto určujú aj priečne vektory pozdĺž okrajov <​math>​\vec{p_{v}}(u,​0)</​math>,​ <​math>​\vec{p_{v}}(u,​1)</​math>,​ <​math>​\vec{p_{u}}(0,​v)</​math>​ a <​math>​\vec{p_{u}}(1,​v)</​math>​. Ďalej je tiež určená skrutmi v jednotlivých rohoch, teda vektormi <​math>​\vec{t}(0,​0)</​math>,​ <​math>​\vec{t}(0,​1)</​math>,​ <​math>​\vec{t}(1,​0)</​math>​ a <​math>​\vec{t}(1,​1)</​math>​. 
-Vzťah pre všeobecnú bikubickú plochu je rozšírený o ďalšie dva Hermitovské polýnómy tretieho stupňa <​math>​F_{3}(t) = t^{3} - 2t^{2} + t</​math>,​ <​math>​F_{4}(t) = t^{3} - t^{2}</​math>​ a implicitná rovnica plochy má tvar <​math>​[F_{3}(u),​F_{1}(u),​-1,​F_{2}(u),​F_{4}(u)].\mathbf{C}.[F_{3}(v),​F_{1}(v),​-1,​F_{2}(v),​F_{4}(v)]^{T} = 0</​math>​. 
- 
-===== Bézierove plochy ===== 
- 
-Bézierove plochy používajú niektoré modelovacie systémy k reprezentácii povrchu telies, pretože sú ľahko diferencovateľné,​ jednoducho sa modelujú a tiež je pomerne ľahko môžné vypočítať priesečník s lúčom. Tieto plochy sú vlastne špeciálnym prípadom zložitejšej reprezentácie povrchov pomocou NURBS. 
- 
-Na obrázku vidíme definíciu Bézierovej plochy, kde bázové funkcie <​math>​B_{i}^{m}</​math>​ a <​math>​B_{j}^{n}</​math>​ predstavujú Bernsteinove polynómy <​math>​m</​math>​-tého (resp. <​math>​n</​math>​-tého) stupňa. 
- 
-{{:​mgr-szz:​in-gra:​bezier_surface_1.jpg?​350 |Všeobecný Bézierov plát}} 
-{{:​mgr-szz:​in-gra:​bezier_surface_2.jpg?​450|Napojenie Bézierových plôch}} 
- 
-Bézierova plocha pri zmene jedného riadiaceho bodu zmení celý svoj tvar. Táto vlastnosť je nevýhodná,​ a preto sa plochy plátujú. Pre napojenie plátov so spojitosťou nultého stupňa musíme zabezpečiť stotožnenie riadiacich bodov, ktoré určujú príslušnú stranu. Na obrázku vidíme príklad napojenia s geometrickou spojitosťou prvého stupňa (<​math>​G^{1}</​math>​),​ ktorá vzniká vtedy, ak sú priečne dotykové vektory lineárne závislé. 
- 
-Metódou na zobrazovanie Bézierových plôch je polygonizácia založená na princípe rekurzívneho delenia (//patch splitting//​),​ pričom sa využíva algoritmus deCasteljau. 
- 
-===== B-spline plochy ===== 
- 
-Pre modelovanie sú //​**B-spline plochy**// oveľa výhodnejšie,​ pretože sa naväzujú omnoho jednoduchšie než Hermitovské alebo Bézierove pláty. B-spline plochy <​math>​n</​math>​-tého stupňa totiž zaručujú <​math>​C^{n-1}</​math>​ spojitosť vo všetkých svojich bodoch. ďalšou výhodou je, že zmenou jedného riadiaceho bodu zmeníme vždy iba časť danej plochy. 
- 
-{{:​mgr-szz:​in-gra:​bspline_surface.jpg?​450|Napojenie B-spline plôch}} 
- 
-Medzi vlastnosti B-spline plochy patrí: 
-  * celá plocha leží v konvexnej obálke svojich riadiacich bodov, 
-  * pri zmene riadiaceho bodu sa zmenia iba pláty, ktoré sú ním určené 
-  * plocha síce všeobecne neprechádza krajnými bodmi plochy, je to ale možné dosiahnuť násobnými riadiacimi bodmi 
-  * sú invariantné k lineárnym transformáciam (otočenie, posun, zmena mierky, skosenie) 
- 
- 
- 
- 
-===== NURBS plochy ===== 
- 
-//​**Neuniformné racionálne B-spline plochy**// sú zovšeobecnením B-spline plôch a predstavujú dnes štandard v priemyslovom modelovaní. Umožňujú definovať širokú škálu plôch, napr. voľne tvarovateľné plochy na báze racionálnych polynómov (//free form surfaces//) alebo plochy založené na priamkách a kuželosečkách. Aj ich vznik datujeme do polovice 20. storočia pre potreby presnej matematickej reprezentácie tvaru karosérie áut, trupu lodí či lietadiel. 
- 
-{{:​mgr-szz:​in-gra:​nurbs_surface_1.jpg?​400|NURBS plocha}} 
- 
-Z definície, <​math>​N_{i}^{k}(u)</​math>​ a <​math>​N_{j}^{l}(v)</​math>​ sú normalizované B-spline bázové funkcie (<​math>​k</​math>,​ <​math>​l</​math>​ sú stupne polynómu) a <​math>​\omega_{i,​j}</​math>​ sú váhy jednotlivých bodov (homogénne súradnice) riadiace siete <​math>​\mathbf{P}</​math>​. Váhy podobe ako v prípade kriviek určujú vplyv riadiaceho bodu na plochu, pričom so zvyšujúcou sa hodnotou váhy sa plocha k bodu primkýna. Podobne ako Bézierove plochy, aj NURBS sú invariantné k lineárnym transformáciam a vďaka racionalite sú naviac invariantné aj k perspektívnej projekcii. 
- 
-{{ :​mgr-szz:​in-gra:​nurbs_surface_2.jpg?​280|Rotačná plocha}} 
- 
-O plochách NURBS hovoríme aj v prípade modelovacej techniky zvanej //​**šablónovanie** (sweeping)//,​ kde patria napríklad: ​ 
-  * //​**translačné šablónovanie**//​ - obrys je ľubovoľný a trajektória,​ po ktorej je obrys ťahaný je úsečka, dostávame tzv. //​priamkové plochy// popísané vzťahom <​math>​Q(u,​v) = (1-u).P(0,​v) + u.P(1,​v)</​math>,​ typy translačného šablónovania sú -- po úsečke s nemeniacou sa profilovou krivkou (//extruded surface//), po úsečke medzi danými profilmi (//ruled surface//) a poťahovanie (//​skinning//​),​ 
-  * //​**rotačné šablónovanie**//​ - obrys je ľubovoľný a trajektória,​ po ktorej je obrys ťahaný je kružnica alebo jej časť -- toto teleso je možné získať aj rotáciou okolo osi, výsledkom je //rotačná plocha// (viď obrázok), 
-  * //​**všeobecné šablónovanie**//​ - obrys i trajektória je ľubovoľná,​ získavame //​zovšeobecnenú valcovú plochu//. 
- 
-===== Implicitné povrchy ===== 
- 
-Implicitné vyjadrenie plochy tvorí alternatívu k povrchu definovanom pomocou polygónov alebo parametrických plátov. Výhodou je napríklad kompaktnejšia reprezentácia či jednoduchšie sledovanie lúča (paprsku). Výpočet sledovania lúča je ale časovo náročný, rovnako je náročné aj zobrazovanie plochy v reálnom čase. Väčšina zobrazovacích metód v konečom dôsledku aj tak prevádza implicitné plochy na parametrické vyjadrenie alebo rovinné plošky, tzv. //​polygonizácia implicitných plôch//. 
- 
-Funkcia <​math>​f(x,​y,​z)</​math>​ priraďuje každému bodu v priestore nejakú skalárnu hodnotu a definuje teda skalárne pole. Nami hľadaný objekt je //​izoplocha//,​ teda množina bodov s rovnakou funkčnou hodnotou. Ak <​math>​f = 0</​math>,​ bod leží //na povrchu// plochy. Ak <​math>​f < 0</​math>​ alebo <​math>​f > 0</​math>,​ možeme hovoriť, že bod leží //vo vnútri// (alebo //vonku//) objektu ohraničeného plochou, no ktorá hodnota označuje čo, už závisí na konkrétnom kontexte. 
- 
-//Normály povrchu// sú obvykle určené //​**gradientom**//​ príslušnej funkcie, teda <​math>​\nabla f(x,y,z) = \left(\frac{df}{dx},​ \frac{df}{dy},​ \frac{df}{dz}\right)</​math>​. 
- 
-Medzi implicitné povrchy zaraďujeme //**blobby objekty** (kvapky)// od J. Blinna, //​**metaballs**//​ či //**soft objects**// od Wyvilla. 
- 
-Príkladom implicitnej plochy (množiny bodov <​math>​P</​math>​ v trojrozmernom priestore) je //guľová plocha// zadaná implicitnou rovnicou <​math>​Q(P) = x^{2} + y^{2} + z^{2} = r^{2}</​math>​. 
- 
-Implicitné plochy môžu byť reprezentované aj takzvanými //​**dištančnými povrchmi**//​ (viď zoznam na obrázku). 
- 
-{{:​mgr-szz:​in-gra:​dist_surface.jpg?​250|Dištančné povrchy}} 
- 
-===== Delené povrchy ===== 
- 
-Modely sú reprezentované pomocou mnohouholníkov,​ avšak len málokedy majú objekty reálneho sveta ostré hrany. Pri modelovaní pomocou polygónov nastávajú problémy s úrovňou detailov. Aj keď model aproximujeme dostatočným množstvom polygónov, pri zväčšení sa problém hrán znovu objaví. Riešením je delenie povrchov. 
- 
-Polygonálna sieť je množina vrcholov a prepojení medzi nimi, čím definuje topológiu povrchu a vymedzuje jednotlivé plošky. Delenie je rekurzívny proces, pri ktorom je polygónová sieť zjemňovaná pridávaním vrcholov a plošiek. Pri zvyšovaní počtu vrcholov síce dochádza k výraznému spomaleniu a takéto modely sú pamäťovo náročné, ale aj napriek tomu je zjemňovanie siete významné pri tvorbe animácií a statických modelov. Generované povrchy, kedy zvyšujeme úroveň detailov sa nazývajú //**delené povrchy** (subdivision surfaces)//​. 
- 
-Povrchy môžeme //**deliť nad poškami**//​ alebo //**deliť nad vrcholmi**//​. Dôležitým faktorom pri delení povrchov je //​topológia//​ polygónovej siete. Môže sa jednať napríklad o trojuholníkovú sieť, štvorcovú sieť alebo sieť s ľubovoľnou topológiou. Obidve nasledujúce prezentované deliace schémy však dokážu deliť povrchy s ľubovoľnou topológiou,​ čo je ich veľká výhoda. 
- 
-=== Doo-Sabin ===  
-Doo-Sabin je aproximačná deliaca schéma používajúca delenie nad vrcholmi. 
- 
-{{ http://​upload.wikimedia.org/​wikipedia/​commons/​thumb/​5/​56/​DooSabin_subdivision.png/​800px-DooSabin_subdivision.png?​400|Kubické Hermitovské polynómy}} 
- 
-//​Ploškový bod// je vypočítaný ako priemer všetkých vrcholov plošky podľa vzťahu <​math>​V_{F} = \frac{1}{N} \sum_{i=1}^{N} V_{i}</​math>​. Pre každý vrchol potom vypočítame nový vrchol prislúchajúci k pôvodnému ako priemer ploškového bodu, pôvodného vrcholu a stredu hrán, ktoré z neho vychádzajú,​ teda <​math>​V'​ = \frac{V + V_{F} + M_{E1} + M_{E2}}{4}</​math>​. Takto vznikajú 3 typy nových plošiek -- //​**plošková**//​ (červená),​ //​**hranová**//​ (žltá) a //​**vrcholová**//​ (modrá). 
- 
-Povrchy generované delením Doo-Sabin spĺňajú podmienku <​math>​C^{1}</​math>​ spojitosti (okrem hranice, kde je sieť otvorená). 
- 
-=== Catmull-Clark ===  
-(Tu môžete spomenúť, docent Sochor to má rád ;-), oskarový krátkometrážny animovaný film od štúdia Pixar "//​Geriho hra (1997)//",​ ktorý režíroval český rodák Jan Pinkava a pri jeho tvorbe bola naplno využitá práve deliaca schéma Catmull-Clark (viac informácií v článku [[http://​graphics.pixar.com/​library/​Geri/​paper.pdf]]).) 
- 
-{{ :​mgr-szz:​in-gra:​delenie_surface.jpg?​450|Delenie plochy - výpočet nových vrcholov}} 
- 
-Catmull-Clark je aproximačná deliaca schéma používajúca delenie nad ploškami. 
- 
-Podobne ako pri delení Doo-Sabin, aj tu si spočítame //​**poškový bod**// <​math>​V_{F}</​math>,​ avšak zatiaľ čo v predchádzajúcom prípade plnil len funkciu medzivýsledku pri výpočte nových bodov, teraz sa stáva súčasťou výslednej zjemnenej siete. Ďalej určíme //​**hranový bod**// <​math>​V_{E}</​math>​ ako priemer vrcholov hrany a ploškových bodov podľa vzťahu <​math>​V_{E} = \frac{E_{1} + E_{2} + V_{F1} + V_{F2}}{4}</​math>​. Posledný typ bodu, ktorý musíme spočítať je //​**vrcholový bod**// <​math>​V_{V}</​math>​ zjednodušene vyjadrený vzťahom <​math>​V_{V} = \frac{Q + 2R + S.(n-3)}{n}</​math>,​ kde <​math>​Q</​math>​ je priemer nových stenových bodov na stenách priľahlých k vrcholu, <​math>​R</​math>​ je priemer nových hranových bodov a <​math>​S</​math>​ je pôvodný vrchol. 
- 
-Povrchy generované delením Catmull-Clark spĺňajú podmienku <​math>​C^{1}</​math>​ spojitosti (mimo výnimočné vrcholy dokonca až spojitosť <​math>​C^{2}</​math>​). 
- 
-====== Doplňujúce odkazy na rozšírenie problematiky ====== 
- 
-[[http://​bspline.webuda.com/​]] - diplomová práca z UK o B-splajnoch,​ obsahuje nejaké applety na vizualizáciu a vyčerpávajúci text. 
- 
-[[http://​www.netgraphics.sk/​b-splajnove-krivky]] - stránka v slovenčine aj angličtine taktiež s množstvom Java appletov. Prekračuje však len problematiku kriviek a venuje sa rôznym témam počítačovej grafiky. 
- 
-[[http://​www.hyperkrychle.cz/​curves/​]] - ďalšia diplomová práca o krivkách, tentokrát z VUT. 
- 
-[[http://​www.ibiblio.org/​e-notes/​Splines/​Intro.htm]],​ [[http://​www.vis.uni-stuttgart.de/​~kraus/​LiveGraphics3D/​cagd/​]] - anglické texty a opäť veľké množstvo appletov na vizualizáciu kriviek. 
  
 ====== Použité zdroje ====== ====== Použité zdroje ======
mgr-szz/in-gra/5-gra.1414397272.txt.gz · Poslední úprava: 2020/04/12 16:56 (upraveno mimo DokuWiki)
Nahoru
CC Attribution-Noncommercial-Share Alike 4.0 International
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0