====== 5. Cvičení - 2. model do galerie - 3D rekonstrukce ====== ===== podklady pro cvičení ===== * mračno bodů {{courses:a7b39mvr:tutorials:05:ctu_karlak_pc.zip|}} (roh budovy ČVUT na Karlově náměstí) * 3D rekonstrukce z programu ARC3D{{courses:a7b39mvr:tutorials:05:arc3d_model_kralovo_namesti_ctu_building_corner.zip|}} (roh budovy ČVUT na Karlově náměstí) * fotografie pro SketchUp {{courses:a7b39mvr:tutorials:05:srni_sketchup.zip|}} (Sedlo na Srní) * ukázka 3D rekonstrukce pomocí SketchUp {{courses:a7b39mvr:tutorials:05:srni_sketchup_projekt.zip|}} (SketchUp projekt a VRML export) ===== Postup cvičení ===== Nejprve odešleme fotografie pro vytvoření 3D rekonstrukce na server rekonstrukční služby [[http://www.arc3d.be/|ARC3D]] pomocí stejnojmenného programu. Případně můžeme využít podobnou službu od Autodesku - [[http://www.123dapp.com/catch|123D Catch]]. Čas strávený čekáním na zaslání zrekonstruovaného modelu si vyplníme ručním vyzkoušením procesu, který rekonstrukční služba za nás dělá automaticky (viz následující postup - Mračno bodů → trojuhelníková síť). Model získaný z rekonstrukční služby si dle druhého návodu upravíme pro potřeby virtuálních světů (LOD modelu z ARC3D). V druhé polovině cvičení získáme základní znalosti pro práci v programu SketchUp a využijeme jej pro ruční 3D rekonstrukci z fotografií. ==== Mračno bodů → trojuhelníková síť ==== Tento postup je vhodný pro převod hustých mračen bodů (výstup z programů typu PMVS) na trojúhelníkové sítě. Návod se nezabývá vytvořením textury z fotografií, ale popisuje převod barev z mračna bodů na výstupní trojuhelníkovou síť. - start programu Meshlab - načtení mračna bodů (stáhněte si soubor CTU_karlak_pc.zip z EDUXu) - výběr bodů pro rekonstrukci trojuhelníkové sítě (edit -> **select vertex clusters + CTRL**). Tím odstraníme body které nemají být rekonstruovány a šum. - Pro smazání nežádoucích bodů využijeme nástroje: Filters -> Selection -> **Invert Selection**, Filters -> Selection -> **Delete Selected Faces And Vertices** (Shift + DEL) - Vytvoření trojuhelníkové sítě - nástroje v menu Filters -> Point Set. Nejlepších výsledků dosáhneme pomocí **Surface Reconstruction: Poisson**. Parametr Octree Depth ovlivňuje detail rekonstrukce (více == detailněji) ale zároveň zvedá náročnost výpočtu. Solver Divide snižuje paměťovou náročnost. (zkuste postupně zvedat Depth od 6 do 12, Solver divide ponechte na 6 a se zvyšováním Depth zvyšujte o půl kroku - př: dep 6, div 6; dep 7, div 6; dep 8, div 7; dep 11, div 8 ). Samples per node ovlivňuje citlivost rekonstrukce na šum (můžete ponechat 1 nebo zvyšovat). Surface offsetting neměnit, předsazuje výslednou trojuhelníkovou síť před zdrojová mračna bodů. - Přenesení barevné informace z mračna bodů na trojuhelníkovou síť. Filters -> Sampling -> **Vertex Attribute Transfer**. Source mesh nastavte na zdrojové mračno bodů, Target Mesh na výslednou poisson rekonstrukci. Zaškrtněte pouze transfer color a stiskněte apply. Trojuhelníková síť se obarví dle mračna bodů. - Otevřete si **Layer Dialog** (menu View) - filtry se aplikují pouze na vybranou vrstvu nebo na všechny, pokud není žádná vrstva aktivní. - Použijte kombinací nástrojů výběru v mračnu bodů, práci s výběry a přenesení informace pro odstranění nadbytečných trojuhelníků vzniklých rekonstrukcí. - Pro snížení počtu trojuhelníků výsledného objektu můžete použít funkci filters -> Remeshing, Simplification and Reconstruction -> **Quadric Edge Collapse Decimation** - Proveďte export do VRML a zkontrolujte zda model odpovídá výsledkům v Meshlabu. {{courses:a7b39mvr:tutorials:05:pc_to_mesh_01.jpg?200|02 - vstupní mračno bodů}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_02.jpg?200|03 - výběr bodů pro rekonstrukci}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_03.jpg?200|04a - invertování výběru pro rekonstrukci}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_04.jpg?200|04b - smazané nežádoucí body}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_05.jpg?200|05a - příklad nastavení Poissson. rekonstrukce}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_06.jpg?200|05b - výsledek Poisson. rek.}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_07.jpg?200|06 - přenesení barevné informace z mračna bodů}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_08.jpg?200|08a - vybrané trojúhelníky}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_09.jpg?200|08b - pročištěný model}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_10.jpg?200|09a - wireframe model}} {{courses:a7b39mvr:tutorials:05:pc_to_mesh_11.jpg?200|09b - decimovaný model (10000 trojúhelníků)}} ==== LOD modelu z ARC3D ==== - Načtěte si vlastní model získaný rekonstrukcí z programu **ARC3D** (model má i texturu) nebo z programu **123D Catch** - Vytvořte si pomocí Quadric Edge Collapse Decimation **2** varianty vhodné pro VRML a vytvořte s nimi VRML - **LOD** model s dvěmi úrovněmi detailu (1.hrubý mesh, 2. kvalitnější mesh). Kvalitní mesh nesmí být větší v zazipované podobě než **300kB** (odpovídá přibližně 10000 trojuhelníků s texturovacími souřadnicemi). Pro nižší kvalitu LOD využijte mesh s obarvenými vrcholy (bez textury), vejděte se do velikosti **50kB** zazipovaného souboru. Nezapomeňte převzorkovat texturu rekonstruovaného objektu aby odpovídala požadavkům na textury použité ve VRML (velikost mocnina dvou) a na internetu (velikost v kB). - Pokud vám nebude správně fungovat export z MeshLabu přímo do VRML (špatné texturovací souřadnice), proveďte nejdříve export do **obj** a pak převeďte obj do VRML pomocí **oopt** nástroje viz návod z [[courses:a7b39mvr:tutorials:05:zaloha_2015|]] . - Nezapomeňte optimalizovat velikost výsledných souborů programem **Chisel**. - ukázka finálního modelu v LOD {{courses:a7b39mvr:tutorials:05:arc3d_to_lod.zip|}} - LOD je nastaveno schválně výrazné, aby bylo vidět jak se model mění. {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_01.jpg?200|vstupní texturovaný objekt}} {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_02.jpg?200|wireframe zobrazení}} {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_03.jpg?200|decimovaný model - 10000 trojúhelníků}} {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_04.jpg?200|decimovaný model s texturou}} {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_05.jpg?200|decimovaný model, zvýrazněné hrany - 2000 trojúhelníků}} {{courses:a7b39mvr:tutorials:05:arc3d_to_lod_06.jpg?200|obarvený model s 2000 trojúhelníky}} ==== SketchUp ==== === základní použití programu === - Po spuštění programu SketchUp musíme nejprve nastavit šablonu/Template - hlavně kvůli nastavení jednotek a defaultního pohledu - vybereme Default / meters - Nejprve si vyzkoušíme základní techniky modelování - podrobnější tutoriály a návody jsou zde: http://www.sketchup.com/intl/en/training/videos.html - Vytvořte podkladový obdélník (**rectangle**). - Obdélník vysuňte/extrudujte pomocí nástroje **push / pull** - Pro pohyb ve scéně používejte kolečko myši (scroll, hold, hold + shift) - "snapping" při modelování: orientace dle hrany / omezení vzdálenosti k bodu - stačí na chvíli najet nad bod zájmu a sketchup sám usoudí kam má provést snapping/orientaci - Vytvořte si na jedné stěně obdélník představující okno a pomocí **offset tool** z něj vytvořte rám okna - Vytvořte "rantl" okolo domečku pomocí **follow me tool**. (nápověda, vytvořte obrubeň dveří, spodní část obrubně rozdělte a nyní aplikujte "follow" nástroj na hrany tvořící spodek domu) - Pokud potřebujete odměřit vzdálenosti nebo začít kreslit někde v prostoru, vytvořte si vodící linky pomocí **tape tool / guide lines** - (delete guid lines v menu, vymaže vodící linky z celé scény) - Udržujte model čistý !! Nástroj guma na nepotřebné hrany. - Vyberte všechny komponenty, které tvoří okno a sjednoťte je do nové komponenty: **Make Component** (pravé tlačítko myši) - Nyní můžete celé okno zkopírovat nástroj **move + CTRL** == copy - Vyzkoušejte použití dvojkliku u nástrojů push/pull a offset. Dvojklik způsobí aplikaci nástroje s posledním nastavením vzdálenosti. - Chcete-li omezit vytváření čar v nějakém směru (constrain) můžete buď zafixovat klíčový směr najetím na hranu a zmáčknutím shift nebo stiskem šipek na klávesnici zafixujete směr na jednu z hlavních os. - Dokončete dům dle vlastní fantazie {{courses:a7b39mvr:tutorials:05:sketchup_basic_01.jpg?200|I}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_02.jpg?200|II}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_05.jpg?200|V}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_06.jpg?200|VI}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_07.jpg?200|VII}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_08a.jpg?200|VIIIa}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_08b.jpg?200|VIIIa}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_09.jpg?200|IX}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_10.jpg?200|X}} {{courses:a7b39mvr:tutorials:05:sketchup_basic_final.jpg?200|XIII}} === Modelování podle fotografií: Match Photo === Video návod pro pozicování fotografií je na http://www.sketchup.com/intl/en/training/videos/familiar_with_gsu.html# Použijte buď vámi pořízené fotografie nebo fotografie z podkladů pro toto cvičení ({{courses:a7b39mvr:tutorials:05:srni_sketchup.zip|}} ). - Načtěte fotografii na které je vidět velká část rekonstruovaného domu (PICT1447.JPG) Camera -> **Match new Photo** - Nastavte úběžníky, počátek souřadného systému a měřítko kamery (úběžníky u země nejsou vhodné, protože v těch místech budovy nejsou v rovině ale vyvažují sklon terénu). Na //prvním obrázku// máte znázorněné vhodné nastavení pro tuto kameru. - Když je kamera nastavená, potvrdťe její nastavení (tlačítko **Done**) - Vymodelujte základ scény - je potřeba začínat z počátku !! Když se nepracuje z počátku, scéna v daném pohledu vypadá korektně, ale z jiného úhlu pohledu již postrádá smysl (//Obr 2 a 3//). - Přidejte další fotografii (PICT1436.JPG) nastavte úběžníky a pokračujte s modelováním (//Obr. 4//). - Přepínání mezi pohledy se provádí klepnutím na záložky, které se přidávají na horní levý roh editačního okna automaticky s každou fotografií - tím se můžete také vrátit do původního pohledu, pokud provedete změnu pohledu pomocí kolečka myši (viz předchozí postupy). - Začněte model doplňovat o detaily (//Obr. 5//). - Průběžně můžete používat příkaz **Project Photo** - pravé tlačítko myši pro vytvoření textury z aktuální fotografie na všechny vybrané plochy (//Obr. 6//). Pokud jsou některé plochy vidět pouze částečně, program se zeptá zda je má rozdělit z důvodu lepšího texturování. Nepovolujte tuto možnost dokud si nejste jisti s finální geometrickou podobou modelu (dochází k rozseknutí těchto ploch a pak se s nimi špatně modeluje). - Texturovaný model Exportujte do VRML - varianta **SketchUp Pro** umožňuje export do několika formátů včetně VRML a X3D. - Pokud jste narazili na nějaké problémy s nastavováním kamer - podívejte se do přiloženého souboru s hotovým projektem, jak tam byly úběžníky a počátek nastaveny ({{courses:a7b39mvr:tutorials:05:srni_sketchup_projekt.zip|}} ). Pozor - takto vzniklá rekonstrukce je pouze přibližná !! V Procesu je příliš mnoho nepřesností, takže je skoro nemožné správně nastavit dvě kamery z různých pohledů, tak aby na ně model přesně korespondoval. {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_01.jpg?200|sketchup rekonstruction 1}} {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_02.jpg?200|sketchup rekonstruction 2}} {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_03.jpg?200|sketchup rekonstruction 3}} {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_04.jpg?200|sketchup rekonstruction 4}} {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_05.jpg?200|sketchup rekonstruction 5}} {{courses:a7b39mvr:tutorials:05:sketchup_reconstruction_06.jpg?200|sketchup rekonstruction 6}}