Toto je starší verze dokumentu! —-

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ů).

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)

Hraniční reprezentace těles

  • popis množiny hraničních bodů

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).

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.

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

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.

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

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

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

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í

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ě

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.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