CutawayGen (2008)

My master thesis. The goal was to implement a system for visualizing the internal structure of complex 3D models using cutaway planes generated in real time and to create an interactive interface for selecting important parts of the 3D model that the user wants to display. Internal parts selected in this way will then become visible immediately.


Aplikace byla implementována podle článku Interactive Cutaway Illustrations of Complex 3D Models autorů Wilmota Li, Lincolna Rittera, Maneesha Agrawala, Briana Curlesse a Davida Salesina z univerzity v Berkeley. Základním rozdílem oproti jiným metodám, které využívají řezy je, že zde se pozice řezu vypočítá vždy na základě tvaru části 3D modelu, kterou ořezává (tedy ne podle tvaru důležité části, kterou chce uživatel vidět). Tento přístup je složitější na implementaci, ale na druhou stranu je výsledná ilustrace (animace) daleko přehlednější (viz. videa dole).

Výhodou mé implementace je především použití vlastních shaderů pro ořezávání překrývající geometrie a vyplňování vnitřních stěn řezů. Původní aplikace využívá pomalého a složitého systému třetí strany pro konstruktivní geometrii (CSG).

Základní myšlenka tkví v tom, že uživatel nejprve přiřadí každé části 3D modelu nějaký základní geometrický tvar, na který se nejvíc podobá (kvádr, válec, trubka nebo tzv. složitý povrch, který se používá například pro modely karoserie auta, trupu letadla či u anatomických modelů lidské kůže) a na základě této klasifikace je pak prováděn řez. Například u objektu podobnému kvádru je proveden obdélníkový výřez skládající se ze šesti ořezávacích rovin, které jsou rovnoběžné z jeho stěnami. Ořezávací roviny se používají i u válce (klínový výřez) a trubky (příčný výřez), u složitého povrchu se používá zahazování fragmentů v závislosti na geodetické vzdálenosti po povrchu od středu výřezu.

Po přiřazení geometrických tvarů je dalším krokem výběr a uložení vhodných pohledových úhlů pro které se vytvoří tzv. graf viditelnosti. V tomto grafu jsou uloženy informace o vzájemném překrytí částí 3D modelu z definovaného směru pohledu a je nezbytný ke správnému výpočtu pozic jednotlivých řezů. Jeho výpočet je prováděn pomocí renderování obrazových vrstev do textur, ze kterých se pak složí.

Po provedení postupu popsaného v předchozích dvou odstavcích již uživatel může vybírat jednu nebo více částí 3D modelu, které si přeje zobrazit. Systém automaticky vypočte pozice potřebných řezů a vybere nejvhodnější úhel pohledu na model.



Download

Text diplomové práce: diplomka.pdf
Aplikace: zatím nedostupné

Back to Projects