4. 3D modelování a datové struktury (90%)
Mnohoúhelníkové a trojúhelníkové sítě:
datové struktury
modelování
filtrování
změna struktury sítě
Implicitní reprezentace a modelování
Mnohoúhelníkové a trojúhelníkové sítě
Geometrie
Ovlivněné deformacemi
pozice a tvar vrcholů, hran, stěn
Topologie
Neovlivněné deformacenmi
konektivita/sousednost mezi různými vrcholy, hranami, stěnami
Topologicky identické sítě
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Topologicky odlišné sítě
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Manifold
N-manifold: pro každý bod existuje okolí, které je topologicky ekvivalentní (homeomorfní) otevřené podmnožině n-rozměrného euklidovského prostoru
Plochy jsou 2-Manifold
Pro každý povrchový bod existuje okolí, které je topologicky ekvivalentní s rovinou
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Oritentace
Orientovatelné povrchy umožňují konzistentní definici orientace ve směru a proti směru hodinových ručiček
Můžeme definovat přední/zadní nebo vnitřní/vnější stranu
U neorientovatelných povrchů se může orientace změnit po průchodu smyčkou povrchu
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Elementy topologie
Základní topologické prvky hraničních reprezentací/sítí:
Kromě toho musíme sledovat:
Genus
Okrajové smyčky hran
Shells
Genus
Maximálního počtu uzavřených cest které nerozpojí objekt
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Informačně - počet rukojetí, dír v donutu
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Okrajové smyčky hran
Označováno jako prstence - Rings
Okrajové smyčky uvnitř ploch nespojené s vnějšími hranicemi ploch
"Díry" v plochách
– all edge loops,
– faces
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Shells
Povrchově spojené komponenty
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Eulerova charakteristika
Eulerova charakteristika
Popisuje topologii tvaru
Topologický invariant – nemění se s deformací
pro libovolný konvexní mnohostěn
Euler-Poincaré formula
– vertices,
– edges,
– faces
Zobecněnější verze pro tvary s otvory
– hraniční okrajové smyčky (rings),
– genus,
– shells
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Implikace polygonální sítě
Pro uzavřené 2-manifold trojúhelníkové sítě
Každý trojúhelník má přesně 3 hrany
Každý hrana náleží dvěma trojúhelníkům
Z Euler-Poincarého vzorce
Tedy
Poměr
V důsledku toho je průměrný vrcholový stupeň
Eulerovy operátory
Operátory topologie zachovávající Euler-Poincarého formuli
Kompletní sada operátorů pro konstrukci topologicky korektní reprezentace
Mezivýsledky nemusí být platnými reprezentacemi tělesa
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
MSFV make shell, face, vertex
MEV make edge, vertex
MFE make face, edge
MSH make shell, hole
MEKL make edge, kill loop
KEV kill edge, vertex
KFE kill face, edge
KSFV kill shell, face, vertex
KSH kill shell, hole
KEML kill edge, make loop
Regularizované booleovské operátory
Reprezentace těles lze také upravit pomocí booleovských operací
Booleovská operace s platnými tělesy může vytvořit neplatná tělesa
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Regularizované booleovské operátory eliminují „visící“ struktury nižší dimenze, které mohou být vytvářeny booleovskými operacemi
AND = Průnik
OR = Spojení
SUB = Rozdíl
Vnitřní body (Fialová) – všechny body
z
takové, že otevřená koule o poloměru se středem v
sestává pouze z bodů
pro dostatečně malý poloměr.
Hranice (Zelená) – bod
, který je hraničním bodem
sousedí s vnitřkem, pokud mezi
a dalším bodem
z
najdeme úsek křivky
dostatečně malé délky, takový, že všechny body tohoto segmentu jsou vnitřními body
, kromě
.
Množina
je otevřená, obsahuje-li pouze vnitřní body, a uzavřená, obsahuje-li i její hranici
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Regulační kroky:
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Vypočítejte obvyklou booleovskou operaci.
Vypočítejte vnitřek výsledku.
Tento krok odstraní všechny komponenty nižší dimenze.
Výsledkem je těleso bez hranic
Vypočítejte uzavření získaného interiéru sečtením všech hraničních bodů sousedících s nějakým vnitřním okolím.
Validita hraniční reprezentace
Topologická validita
Orientovatelnost – sousední plochy musí mít správnou orientaci
Eulerovy operátory zachovávají Euler-Poincarého vzorec
Regularizované booleovské operátory zajišťují fyzicky platná tělesa (ale ne nutně manifold)
Geometrická platnost
Numerické chyby v geometrii (např. pozice vrcholů) mohou vést ke konfliktům mezi topologickými a geometrickými informacemi.
Například rovnice roviny říkají, že hrana leží uvnitř tělesa, ale topologie říká, že leží mimo
Datové struktury
Seznam trojůhelníků
Jednoduchý
Obsahuje redundantní informace o vrcholu
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Seznam bodů / indexované trojúhelníky
Sdílení vrcholů snižuje využití paměti
Zajistí integritu sítě
Pohyb vrcholu způsobí, že se tento vrchol ve všech polygonech posune
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Matice sousednosti
Pokud je mezi
a
hrana, pak
Symetrická pro neorientované jednoduché grafy
Může představovat nemanifoldní sítě
Žádné spojení mezi vrcholem a jeho sousedními plochami
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Matice rohů
Matice všech rohů
Seznam sousedních rohů pro každý vrchol
Dobré pro dotazy na sousedství
Určitá redundance dat, pouze pro trojúhelníkovou síť
Image Not Showing
Possible Reasons
The image file may be corrupted The server hosting the image is unavailable The image path is incorrect The image format is not supported
Learn More →
Half Edge
Datová struktura s manifold topologií
Rychlé vyhledávání sousedství
Umožňuje snadnou implementaci úprav sítě
Každá položka neboli half-edge
se skládá z:
Počáteční bod
Koncový bod
(nepovinný)
Sousední (Twin) half-edge
Plocha
Náledník
Předchůdce
(nepovinný)
Modifikace sítě
Lokální
Překlápění hrany
Nahraďí hranu (b,c) hranou (a,d), trojúhelníky (a,b,c), (b,d,c) se stanou (a,d,c), (a,b,d)
Výsledné úpravy sítě:
Změňí se přiřazení ukazatelů pro úpravu vrcholů hran, vrcholů ploch a informací o sousedství
Nebyly přidány ani odstraněny žádné prvky
Rozdělění hrany
Vložte střední bod
hrany (b,c), připojte jej k vrcholům
a
Výsledné úpravy sítě:
Přidány nové prvky: vrchol, hrany, plochy
Změněny/přiřazeny ukazatele podle nových prvků
změneny vrcholy hran a ploch, ukazatele z hran na sousední plochy atd.
Zhroucení hrany
Nahraďte hranu
jedním vrcholem
Výsledné úpravy sítě:
Odstraňeny prvky: hrana, plochy
Změna přiřazení ukazatelů k úpravě vrcholů hran a ploch
Globální
Upsampling , např. podle dělení, používá rozdělení hran
Downsampling pro zjednodušení nebo kompresi, využívá zhroucení hran
Regularizace pomocí překlápění hran
Remeshing , např. z trojúhelníkové sítě na čtyřúhelníkovou
Mesh upsampling (Subdivision) - Zvýšení počtu vzorků sítě
Vyhlazuje síť opakovaným dělením každého prvku na menší kousky
Nahraďí pozice vrcholů váženým průměrem sousedů
Užitečné při modelování a animaci
Hrubá „kontrolní klec“ pro místní úpravy
Globální dělení pro konečný povrch
Hlavní úvahy:
Interpolace vs. aproximace
Limitní spojitost povrchu (C1, C2, … )
Chování v nepravidelných vrcholech
Několik různých přístupů
Aproximace (např. Catmull-Clark, Loop subdivision)
Interpolace (např. Butterfly)
Polygonální sítě
Výhoda - jednoduchá reprezentace 3D modelů
Problém - velký počet polygonů pro hladké povrchy
B-spline plochy
Hladce spojené polynomiální oblasti aproximující vrcholy řídicí sítě
Síť kontrolních bodů musí být pravidelná
Nemůže popsat povrchy s libovolnou topologií
Rekurzivní dělení
Rekurzivní zjemnění polygonální (kontrolní) sítě přidáním nových vrcholů, hran a ploch (rozdělení původní sítě)
Vytvoření hladkého (mezního) povrchu
Pravidelné B-spline dělení
Kvadratický B-Spline (Chaikin)
Liché koeficienty
Sudé koeficienty
Kubický B-Spline (Catmull-Clark)
Liché koeficienty
Sudé koeficienty
Mesh downsampling - Simplifikace
Snížení počtu síťových prvků při snaze zachovat celkový tvar
Úroveň detailů (LOD)
Některé objekty (např. vzdálené) nepotřebují vysokou LOD
Menší LOD zlepšuje výkon, paměťové úložiště
Několik různých přístupů:
Variační tvarová aproximace
Iterativní decimace (odstranění vrcholu nebo zhroucení okraje)
Variační aproximace tvarů
Shluk povrchových prvků (např. trojúhelníků) do
oblastí
Začneme s náhodnými seedy (
trojúhelníků)
Aplikuje se růst oblastí na základě podobnosti se seedy (blízkost, normální orientace, … )
Upraví se seedy (naleznou se nejlepší zástupci každé oblasti)
proces se opakuje, dokud se oblasti nestabilizují
Proložte každou oblast rovinou, která minimalizuje chyby z oblasti
Např. vážený průměr normál trojúhelníku
Simplifikace hroucením hran
Hladový přístup:
Přiřaďí se cena každé hraně
Zhroutí se okraj s nejnižší cenou
Opakuje se, dokud není dosažen cílový počet prvků
Vyžaduje cenovou funkci, např. metriku kvadrické chyby :
Kvadrická chyba = součet vzdáleností mezi bodem a rovinou
Pro každou hranu najděte vrchol, který minimalizuje kvadrickou chybu, pak se zhorutí hrana s minimální chybou
Mesh resampling - Regularizace Modelování
Free-form deformace (FFD)
Příklad:
Vytvoří se nástroj FFD (mřížka/mřížka pro Bezierův objem)>
Objekt je umístěn do prostoru FFD (světové souřadnice jsou převedeny na lokální)
Upraví se nástroj FFD (přesunou se body mřížky)
Transformuje se vložený objekt podle změn v prostoru FFD (lokální na světové)
Lze použít pro část modelu
Část modelu je uzavřena v deformační mřížce (objem FFD)
Deformace mřížky mění obsah
Extended Free Form Deformations (EFFD) Sabine Coquillart (INRIA)
Rozšíření techniky FFD
Libovolně tvarované deformace použitím nerovnoběžných mřížek
Stejné principy jako pro deformaci
Klíčovou roli hraje definice mřížky a výpočet lokálních souřadnic
Mřížka je konstruována z rovnoběžnostěnových a válcových mřížek
Dělení vytváří prvky – „Chunks“
Chunk je řízen kontrolními body
Topologie musí být zachována
Lokální souřadnicový systém
Chunk definuje svůj vlastní lokální souřadnicový systém
Místní souřadnice nelze vypočítat přímo kvůli obecnému tvaru chunku
Souřadnice mohou být aproximovány
převod na jiný souřadnicový systém
rekurzivní dělení chunků
numerická interace
Iterace Newtonovou metodou s počátečním bodem
Vede k velmi dobré konvergenci (2-3 iterační kroky)
Lze vylepšit pomocí dělení po částech
S degenerovanými kusy nemusí být inverze matice požadovaná Newtonem možná,
Používá se metoda pseudoinverzní matice
Animované FFD
Dvě varianty
Nástroj pohybující se kolem objektu – lokální deformace
Pohyb objektu uvnitř mřížky – globální deformace
Axiální deformace
Fáze 1:
Definujeme původní křivku (osu) a parametry definující rozsah vlivu.
Připojíme všechny vrcholy objektu k ose, tj. najdeme nejbližší body
na křivce.
V každém bodě osy definujeme lokální souřadnicový rám
Rotace minimalizující ortogonální rám (např. Frenet frame)
Fáze 2:
Deformujeme křivku a aplikujeme změny na ovlivněné vrcholy pomocí lokálních rámových transformací.
FFD s Catmull-Clark objemy (CCV)
mřížka: vrchol, hrana, plocha, buňka
Příklad:
Sestrojíme mřížku obsahující původní povrch.
Pomocí n-kroků dělením CC zpřesníme mřížku na menší buňky.
Pro všechny definující body původního povrchu:
Najdeme buňku rafinované mřížky obsahující tento bod,
a označíme jej indexem buňky.
Vypočítáme trilineární parametrizaci u,v,w bodu
uvnitř buňky, např. numerickou iterací počínaje (0,5, 0,5, 0,5).
Deformujeme původní mřížku
Upřesníme ji v n-krokovém dělení, abychom získali nové pozice buněk.
Pomocí indexu najdeme odpovídající buňku a pomocí
spočítáme novou polohu deformovaného bodu
.
Dráty (Wires) – deformace na povrchu
Drát je definován jako n-tice
– parametrická křivka volného tvaru (drátová křivka)
– parametrická křivka volného tvaru (referenční křivka)
– skalární, které řídí radiální škálování kolem křivky
– skalární definující poloměr vlivu
– funkce skalární hustoty,
alespoň
monotónně klesající
,
pro
,
Rekonstrukce
Rekonstrukce 3D modelu z mračen bodů
Potřebuje se vypořádat s mnoha problémy
Nerovnoměrné vzorkování
Chybějící data
Šum a odlehlé hodnoty
Zdrojová data mohou obsahovat další informace
Normály
Barva
Tvarová omezení (CAD, architektura)
Různé přístupy založené na dostupných datech a cílech
Interpolace (založená na Delaunay)
Aproximace (implicitní funkce, CSG, rozdělení prostoru … )
Filtrování
Odstranění šumu, zdůraznění důležitých vlastností
Podobné jako filtrování obrázků (PB130, PV131)
Gaussův filtr
Vážený průměr vrcholů
Vyhlazuje také hrany
Bilaterální filtr
Spektrální filtrování
Založeno na eigen-decomposition
Atd.
Implicitní reprezentace a modelování
Definované reálnou funkcí
Klasifikuje body v prostoru
Implicitní povrchy vs. polygony
Hladší
Kompaktní reprezentace, méně primitiv
Obtížnější zobrazení v reálném čase
Implicitní povrchy vs. parametrické pláty
Snazší spojování
Bez topologických problémů
Nižší stupeň
Obtížnější parametrizace
Snadnější sledování paprsku
Rovina jako implicitní povrch
Rovina ohraničuje poloprostor
Určena bodem
a normálou
je vzdálenost bodu od roviny, pokud
= 1$
Kvadriky
Elipsoid (koule)
Válec
Hyperboloid (Kužel)
Paraboloid
Torus
Distanční povrchy
Koule:
bod
Cylindr:
přímka
Sfylindr:
úsečka
Torus:
kružnice
Obecný cylindr:
křivka
Ofsetový povrch:
povrch
CSG s implicitními objekty
Předpoklad:
= uvnitř objektu
CSG operace pomocí min/max operací
Sjednocení:
Průnik:
Doplněk:
Rozdíl:
C1 nespojitost
Bloby (kapky)
Součet Gaussových křivek
– „kapkovitost“ (pozitivní)
– poloměr kapky v klidu
– funkce poloměru
Metaballs
Omezení potenciálové funkce, nahrazení exponenciály
- měřítko