MoGraph z praktického pohledu – více než osm set šindelů - 3D grafika - 3Dscena.cz: 3D grafika jako na dlani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



3D grafika

MoGraph z praktického pohledu – více než osm set šindelů

22. listopadu 2007, 00.00 | Čas od času se vyskytne situace, kdy je skutečně nezbytné využití nějakého nástroje, protože jinak by byla celá práce zoufale složitá, ne-li neuskutečnitelná v rozumném časovém horizontu. A do takové situace jsem dospěl i já, a to nikoliv v animacích, ke kterým je MoGraph primárně určen, ale při tvorbě mnoha poměrně složitě zarovnávaných instancí.

Jsa vybaven výše zmíněnou zkušeností nic mi nebrání, abych ji předal i Vám, tedy čtenářům. A cože to vlastně bylo za situaci?

Jelikož jsem byl, jak asi mnozí víte, svým akademickým vzděláním a doktorskou prací angažován v oblasti památkové péče, rozhodl jsem se, že pomohu NPÚ s přípravou modelu románského domu, jehož šíje byla nalezená při výstavbě obchodního centra Paladium v centru Prahy, na místě bývalých kasárna a kláštera proti dnešnímu obchodnímu domu Kotva. Jedná se prozatím víceméně o dobročinný projekt, který ale obsahuje mnoho zajímavých aspektů. Jedním z nich je situace šindelové střechy tohoto domu. Konstrukce domu je totiž – mimo samotnou zděnou šíji vedoucí do suterénu – dřevěná a dřevěný je samozřejmě také krov. Technické aspekty stavby jsme společně konzultovali na základě situace in situ a následné dokumentace s doktorkou Podliskou a doktorem Ryklem a také Matoušem Semerádem, který to celé má na starosti jako „styčný důstojník“…

Celý tento dům je tedy dřevěný, a dřevo bylo poměrně často využíváno tak, jak rostlo. Materiál byl otesaný a použitý, nic nebylo rovné, ani střešní rovina. A tak jsem stál před zajímavým problémem. Jak simulovat šindelovou střechu, jejíž plocha není planární, kde by byly jednotlivé šindele korektně položené na latích a zároveň by byl každý jeden šindel korektně položen na šindelu níže ležícím. A navíc kde budou mít šindele proměnlivou délku (což je ale to nejmenší).

Pro tuto konstrukci a řízení jsem tedy využil modul MoGraph a tři, případně čtyři efektory. V zásadě to byly efektory velmi jednoduché, ale ve svém finálním nastavení dokonale fungující. Jmenovitě efektory Shader a také Náhodnost… Cílem je, tedy našeho testu, umístit šindele korektně na sadu latí, které jsou již v modelu připravené (a ty mimochodem také využívají MoGraph).

Soubor ke stažení (pro C4D R 10.5)

Ale začneme pěkně od počátku. Šindel byl de facto jednoduchý polygonový pseudo-kvádrový objekt (se zkosenou jednou stranou) o velikosti 8.92, 34.7, 2.95, který měl své osy ve své vrchní části.

Abych měl co nejvyšší kontrolu nad poloho instancí, zarovnal jsem orientaci objektu Klonování se základním směrem distribuce instancí. Vzhledem k tomu, že poskytuji primární soubor krovu, tak poloha tohoto objektu byla (globální) -63.22 m, 325.38 m 10.36 m a rotace 0, 0, 324.4 °. Samozřejmě hodnoty byly nastaveny interaktivně, kdy uživatel musí sledovat přímo v modelu, cože se to děje.

Podstatné je také rozmístění kopií – instancí. Ty byly rozmístěné do mřížky, a to v hodnotách 1, 9 a 89, celkem tedy bylo na jedné střešní rovině použito 801 instancí. Poloha těchto instancí byla definovaná na tvar Krychle, kdy osa X byla ponechána v původní hodnotě 200 a osy Y a Z byly nastavené na 228.388 m a 620.117 m (opět interaktivně).

Všimněte si, že ve zdrojovém modelu již jsou latě a naše šindele samozřejmě ve své poloze musí korespondovat s těmito latěmi. Ale to není tak snadné. Jednak jsou totiž vždy natočené tak, aby byly položené na níže položeném sousedu, a jednak musí být také posunuté ve svém směru (tedy směr uzlu) Z. Ale po pořádku.

Abychom trochu poupravili umístění primárních poloh instancí, přejdeme v objektu Klonování na stránku Transformace, která nám umožňuje úpravu pozice. Zde posuneme instance ve směru osy X objektu klonování o 1 a rotaci okolo osy H=90 (protože jinak by byly instance kolmo na střešní rovinu).

01

Než začneme upravovat polohu samotných instancí, ještě si je trochu „znáhodníme“ (MS Word mi chtěl ve své nebetyčné inteligenci instance znárodnit, ale to já ne…). Vybereme si náš objekt Klonování a aktivujeme efektor Náhodnost. U tohoto efektoru nastavíme Náhodnost ve velikosti (opět v rozměru Uzel) X 0,05 a Y 0,06. Víc nebude potřeba. Naše instance se trochu upraví a plocha nebude vypadat tak homogenně.

02

Opět si vybereme objekt Klonování a vytvoříme efektor Shader. Zkoušel jsem také efektor Krok, ale podle mého je v tomto případě efektor Shader výkonnější.

U tohoto efektoru nejdříve na stránce Parametr vypneme (volba Vypnuto) parametr Režim barvy, ten nás v tomto případě nezajímá. Mimo to nastavíme v tomto efektoru Posun Z=4. Ostatní hodnoty zatím necháme na 0. A co je pro nás nyní podstatné? Rozmístění počátků šindelů tak, aby správně ležely na našich latích.

Abychom toto řízení měli co nejsnazší, využijeme v efektoru Shader shader Přechod. Ten nastavíme na 2D-V a pomocí přechodu ve škále šedé budeme řídit posun jednotlivých instancí ve směru Z. Samozřejmě, že se jedná o nastavení interaktivní – vždyť máme perfektivní vizuální kontrolu, ale pamatovat bychom měli na to, že černá barva značí nulovou změnu, bílá změnu maximální, tedy posun o ony 4 jednotky. Další podstatnou informací je, že přechod funguje tak, že vlevo je hodnota počátku a vpravo konce – tedy v případě našeho objektu Klonování –Y > +Y.

Takže nyní nám stačí jen do přechodu přidávat uzly a upravovat jas, čímž budeme řídit rozmístění instancí. Zajímá nás zatím jen a pouze poloha instancí u jejich počátku, tedy v prostoru položení na latě.

Přechod by mohl vypadat asi následujícím způsobem.

03

Náš efektor si můžeme zkopírovat a přejmenovat (například Shader efektor2) a také jej musíme přetáhnout do stránky Efektory.

Tento efektor nám bude řídit rotaci instancí. Tedy to, aby jednotlivé šindele ležely na šindelích pod nimi ležících, ale zároveň i to, aby poslední řada šindelů ležela jen na latích. Princip práce je shodný s předešlým efektorem, co ale nyní budeme upravovat, je hodnota natočení P=-10.

Upravíme si jen podle potřeby náš přechod tak, aby byly instance korektně natočené, a to vlastně vše. Všimněme si, že instance i v nejnižší řadě korektně spočívají na konstrukci, tedy všechny řady mimo poslední leží na svých následovnících a jen poslední řada leží jen a pouze na latích. Ideální stav odpovídající realitě.

04

05

Před námi je poslední výzva. A to, že musíme trochu upravit vertikální linie šindelů, aby se nám nekryly. Tedy aby jednotlivé svislice nebyly přímo pod sebou. A co na to použijeme? Můžeme v zásadě upravit jeden stávající efektor a použít další efektor, nový, který nám to vše dokončí k obrazu svému. Takže si nejdříve vybereme efektor Náhodnost a v něm můžeme zvýšit hodnotu parametru velikosti ve směru X z 0,05 na 0,1. To by ale nestačilo. No pokud to nestačí, pomůžeme si drobným trikem. Vytvoříme si další efektor Shader a opět použijeme shader Přechod. I tentokrát budeme posouvat objekty ve směru uzlů, avšak ve směru X +2. Abychom zajistili pohyb – posun v obou směrech, tedy v „+“ i „-“, musíme na stránce Efektor upravit Min/Max hodnoty, a to na -100 <> 100. Pak bude posun probíhat v obou směrech. Co je poslední? Opět jen nastavení přechodu 2D – V a pomocí nastavení barev upravíme posun jednotlivých řad.

06

Co je ale trochu složitější, je druhá strana. Šindele jsou totiž konstruované tak, že jedna střešní rovina v hřebeni druhou překrývá. Jak na to? Vzhledem k tomu, že si můžete scénu prostudovat ve výsledku, tak jen telegraficky. Poněkud jsem posunul osy objektu šindele do jeho středu, čímž jsem posunul tak místo rozmístění instancí. Alternativou by bylo použití hodnoty objektu Klonování > Transformace > Posun.X. poté ještě bylo potřeba upravit rozmístění těchto instancí, protože oč se mi posunuly šindele nahoru po směru střešní roviny, o to se mi posunula také poslední řada a ta již neležela na poslední lati. Takže jsem opět využil efektor Shader s přechodem, který však byl jen v hodnotě bílá – černá a tento efektor mi posouval instance o hodnotu Posun.Y = - 6. Tím jsem po délce střešní roviny posunul jednotlivé instance bez větší námahy.

final

Finální model ke stažení

Tématické zařazení:

 » 3D grafika  

Poslat článek

Nyní máte možnost poslat odkaz článku svým přátelům:

Váš e-mail:

(Není povinný)

E-mail adresáta:

Odkaz článku:

Vzkaz:

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: