Rozdíly

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

Odkaz na výstup diff

mgr-szz:in-gra:3-gra [2014/10/27 09:07]
127.0.0.1 upraveno mimo DokuWiki
mgr-szz:in-gra:3-gra [2020/04/12 16:56]
Řádek 1: Řádek 1:
-=====Zadání===== 
-Modelování v počítačové grafice. Druhy modelů, vytváření a modifikace, zobrazení. Lokální a globální úpravy modelů, deformační metody FFD, EFFD. Princip zjednodušování povrchu, LOD modely, spojitý přechod mezi úrovněmi LOD. 
  
-===== Druhy modelů ===== 
- 
-Těleso je množina bodů v 3D splňující určitá kritéria (např. sousednost). 
- 
-===Trojúhelníková síť=== 
-Trojúhelníková síť (triangle mesh) je množina trojúhelníků sdílející své hrany. ​ 
-  * jednoduchá,​ vždy konvexní, každý vrchol leží v rovině 
-  * pro vyplňování existují velmi rychlé algoritmy 
-  * zobrazování je podporováno grafickým procesorem 
-  * výpočty lze snadno optimalizovat (např. sledování paprsků) 
-  * Datová struktura: geometrická část (obsahuje souřadnice vrcholů) + topologická část (které vrcholy tvoří trojúhelník,​ které trojúhelníky spolu sousedí) 
-Není vhodná na modelování tvaru těles a ploch (namísto např. NURBS), ale užitečná při deformaci. 
-Optimalizace sítě – trojúhelníky pokrývají plochu pravidelně vs. jemněji v místech s větší křivostí. Při zpracování dat v grafickém procesoru je vhodnější popsat síť trojúhelníků pomocí lineární struktury, která zajistí, že každý trojúhelník je zpracován právě jednou: pruh trojúhelníků (triangle strip), vejíř trojúhelníků (triangle fan). 
-Nevýhody: nesnadné mapování textur, může vzniknout geometrický alias (např. při změně měřítka - crack, u T-vrcholů). 
- 
-{{:​mgr-szz:​in-gra:​surfacemodeling015.png|}} 
- 
-===Voxelový model=== 
- 
-  * pole k x l x m voxelů („volume element“) 
-  * jednobitová varianta (0 – nic, 1 – těleso) vs. vícebitová varianta (0 – nic, n>0 – těleso č. n) 
- 
-{{:​mgr-szz:​in-gra:​vox.png|}} 
- 
-===Hraniční reprezentace těles=== 
- 
-  * popis množiny hraničních bodů 
- 
-{{:​mgr-szz:​in-gra:​hr.png|}} 
- 
-Manifold je těleso, které odpovídá nějakému skutečnému tělesu (tj. jehož hrany incidují právě s 2 plochami, jehož hrany neprotínají jiné plochy, osamocený vrchol nespojuje 2 části tělesa). 
- 
-{{:​mgr-szz:​in-gra:​topomodelnonmanifold.gif|}} 
- 
-==Eulerova rovnost== 
- 
-Hraniční reprezentace jednoduchého mnohostěnu splňuje rovnici (opačně nemusí platit, tj. objekt splňující rovnici nemusí být jednoduchým mnohostěnem):​ 
-F + V = E + 2 
-F (faces) – počet ploch 
-V (vertices) – počet vrcholů 
-E (edges) – počet hran 
-Musí platit, že každá hrana propojuje 2 vrcholy, stěny a hrany se neprotínají. 
-Pro manifoldy s otvory platí zobecněná Eulerova rovnost: 
-F + V = E + 2 (C – H) + R 
-R (ring) – počet vnitřních smyček hran 
-C (component) – počet samostatných komponent tělesa 
-H (hole) – počet otvorů 
-Platnost Eulerova rovnosti souvisí s vlastnostmi planárních grafů. 
- 
-===Hranová reprezentace=== 
- 
-  * drátový, „wire-frame“ model 
-  * Implementace:​ seznam vrcholů + seznam hran (obsahuje ukazatele do seznamu vrcholů) 
-Nelze jednoznačně interpretovat (viz. obr.), ale vhodné k vytvoření náhledu, pro prozkoumání vnitřku tělesa. 
- 
-{{:​mgr-szz:​in-gra:​wirefr.gif|}} 
- 
-===Plošková reprezentace=== 
- 
-Implementace:​ seznam vrcholů + seznam hran + seznam ploch (pořadí vrcholů v poli: counter clockwise) 
-Vhodná pro vykreslování zohledňující viditelnost. 
- 
-==Strukturovaná plošková reprezentace== 
- 
-  * Baumgart: Okřídlená hrana (winged edge) 
-  * vhodné pro manifoldy 
-  * je snadné odvodit mnoho topologických informací 
-  * Pro nonmanifoldy:​ půlhrana 
- 
-{{:​mgr-szz:​in-gra:​we.gif|}} 
- 
-===Bodová reprezentace=== 
- 
-Je množina povrchových bodů (většinou získány digitálním snímáním reálných objektů). Data v jednom bodě: souřadnice,​ normála, barva, … 
-  * lze je uspořádat hierarchicky a zobrazovat jenom do určité úrovně 
-  * vysoké paměťové nároky 
- 
-===Konstruktivní geometrie těles, CSG (Constructive Solid Geometry)=== 
- 
-Založena na reprezentaci tělesa stromovou strukturou (CSG strom), který uchovává historii dílčích konstrukčních kroků. Vnitřní uzly obsahují množinové operace, listy CSG primitivy nebo prostorové transformace. CSG primitivy: kvádr, koule, válec, kužel, jehlan, … poloprostor,​ plocha NURBS, … 
-Vhodné pro tvarování tělesa, nevhodné pro zobrazení (lze ale snadno přetransformovat např. do hraniční reprezentace). 
-Prořezaný CSG strom: odstraní se nevyužité větve stromu (pokud se v dané části prostoru nevyskytuje to dané těleso). 
-CSG tree pruning – zásadní zjednodušení CSG stromu. 
- 
-{{:​mgr-szz:​in-gra:​csg.png|}} {{:​mgr-szz:​in-gra:​csg_res.png|}} 
- 
-===== Modelování pomocí deformací ===== 
- 
-Deformace je dodatečné tvarování,​ může být lokální nebo globální. 
- 
-===Barrovy deformace=== 
- 
-  * globální 
-  * neuniformní změna měřítek: X = F_x(x), Y = F_y(y), Z = F_z(z), kde [x,y,z] je nedeformovaný,​ [X,Y,Z] je deformovaný bod 
- 
-Základní deformace: 
- 
-==Změna měřítek (Scale)== 
- 
-X = S_x(x) = S_x . x 
-Y = S_y(y) = S_y . y 
-Z = S_z(z) =  S_z . z 
- 
-{{:​mgr-szz:​in-gra:​scale.png|}} 
- 
-==Zeslabování,​ zašpičatění (tapering)== 
- 
-ve směru osy z: 
-X = r_x . x 
-Y = r_y . y 
-Z = z 
-r_x, r_y jsou lineární nebo nelineární zeslabovací funkce 
- 
-{{:​mgr-szz:​in-gra:​tapering.png|}} 
- 
-==Zkroucení (twisting)== 
- 
-kolem osy z: 
-X = x . cos(f(z)) – x . sin(f(z)) 
-Y = y . sin(f(z)) – y . cos(f(z)) 
-Z = z 
- 
-{{:​mgr-szz:​in-gra:​twist.png|}} 
- 
-==Ohýbání (bending)== 
- 
-  * složená transformace 
-  * ohýbací zóna - aplikuje se kruhová deformace 
-  * vnější zóny tělesa - dochází k posuvu a natočení 
- 
-{{:​mgr-szz:​in-gra:​bend.png|}} 
- 
-===== Volné tvarování těles (FFD, Free-Form Deformation) ===== 
- 
-Lze aplikovat na hraniční i na CSG modely, plochy, části ploch v prostoru. Idea je následující:​ obejkt z elastického materiálu vložíme do formy ve tvaru hranolu a prázdný prostor zalijeme materiálem. Pak aplikujeme sadu transformací na hranol, s tím současně deformujeme i samotný objekt. 
-Postup: 
-Máme souřadnicový systém O, X, Y, Z, zavedeme pomocný souřadnicový systém X_0, bázi tvoří vektory S, T, U, které vymezují rovnoběžnostěn (nemusí být kolmý). Rovnoběžnostěn obsahuje objekt nebo jeho část. Bod X = [x, y, z] má v lokálném souřadnicovém systému X_0 souřadnice [s, t, u] a platí: X_0 + s . S + t . T + u . U 
-s = {T x U(X-X_0)}/​{T x U . S} 
-t = {S x U(X-X_0)}/​{S x U . T} 
-u = {S x T(X-X_0)}/​{S x T . U} 
-V prostoru rovnoběžnostěnu vytvoříme pravidelnou mřížku řídících bodů P_ijk. 
-Prostor zdeformujeme přemístěním řídících bodů. 
-Pro určení změněné pozice bodu objektu se nejprve určí lokální souřadnice bodu, pak poloha bodu ve světových souřadnicích,​ výslednou polohu ovlivní jednotlivé řídící body s určitou váhou (např. lineární interpolací) – měla by zaručit požadovanou hladkost (spojitost) objektu, např. pomocí Bernsteinových polynomů. 
- 
-  * deformovaný parametrický povrch zůstane parametrickým povrchem, deformované parametrické křivky zůstanou parametrickými křivky. 
-  * FFD je možné aplikovat postupně 
-  * hlavním aspektem je udržet předepsanou spojitost navazujících deformovaných a nedeformovaných oblastí 
-  * některé operace CAD systémů nelze použít, např. zaoblování ostrých hran, svařování,​ … 
-  * nevýhoda: rozhraní mezi deformovanou a nedeformovanou oblastí leží v rovině 
- 
-{{:​mgr-szz:​in-gra:​ffd.png|}} 
- 
-===== Zjednodušování scény ===== 
- 
-Může se odehrávat na úrovni sítí trojúhelníků,​ objektů, skupin objektů, … Některé metody zachovávají reprezentaci objektu, jiné přecházejí od složitější do jednodušší reprezentace. 
- 
-=== LOD (Level of Detail) === 
- 
-Úroveň detailu, bezrozměrná. Intuitivně:​ možnost odebírat a přidávat detaily objektu. Kritérium pro změnu LOD při zobrazování scény je např. vzdálenost objektu od pozorovatele,​ velikost průmětu objektu na plochu obrazovky, velikost prostorového úhlu, v němž je objekt, … 
-Díky stínování může být zjednodušený objekt vizuálně velmi blíže původnímu objektu. 
-Jev vyskakování částí objektu (popping effect) – objeví se nebo zmizí skupiny trojúhelníků. Lze omezit pomocí obrazových technik (v předstihu vytvoříme snímek po změně LOD a poté interpolujeme mezi aktuálním a tímto snímkem). 
-Rozdělení metod LOD: 
- 
-== Geometrické stupně detailu == 
-  * Spojité stupně LOD - vychází z decimačních algoritmů, LOD se mění v jemných krocích, vše vloženo do vhodné datové struktury (vysoké paměťové nároky). 
-  * Diskrétní stupně LOD - nejsou paměťově ani výpočetně až tak náročné, 3-5 samostatných reprezentací s klesajícím množstvím detailů (připravuje návrhář),​ každé úrovni je přiřazeno číslo - vzdálenost,​ u níž dochází k přepnutí na další reprezentaci. Nevýhody: redundance dat, skokový přechod z jedné reprezentace do druhé. Výhody: snadná implementace,​ jednoduché rozhodování o změně LOD. 
- 
-== Zjednodušování sítě trojúhelníků == 
-  * Metody zachovávající vs. nezachovávající přesnost modelu 
-  * Metody zachovávající vs. nezachovávající topologie modelu 
-  * Metody zachovávající podmnožinu původních vrcholů sítě vs. vytvoří novou síť převzorkováním 
- 
-== Zjednodušená reprezentace objektů pomocí obrázků a bodů == 
-Přírodní objekty (stromy, květiny, ...) se obtížně modelují, zobrazují (ve větším počtu). Náhradná reprezentace:​ 2D obrázek, textura aplikovaná na jednoduchý polygon (pozadí musí být plně průhledné). 
-  * Impostor - Pokud se pozorovatel přiblíží k impostoru, pak je nahrazen geometrickými objekty. Vytvářejí se dynamicky, snižují iluzi hloubky prostoru. 
-  * Billboard - Jeden objekt - jeden polygon, který je vždy natočený k pozorovateli. Používá se ve virtuální realitě. 
-  * Sprite - Jeden nosný polygon, jeden objekt, poloha se nezmění. 
- 
-====== Zdroj ====== 
-Žára, Beneš, Sochor, Felkel. Moderní počítačová grafika. Computer Press, Brno, 2004. ISBN: 80-251-0454-0 
mgr-szz/in-gra/3-gra.txt · 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