Vlastní krychle – pseudoprimitivum - 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

Vlastní krychle – pseudoprimitivum

24. července 2007, 00.00 | Mezi nevýhody standardních primitiv CINEMY 4D jednoznačně patří skutečnost, že nejsou příliš vhodná při „vizuálním“ obkreslování nějakých objektů. Z toho důvodu jsem před jistou dobou připravil skupinu primitiv, která tuto nevýhodu řešila. Tyto objekty ale nebyly zcela efektivní, a tak jsem se pokusil problém vyřešit jinak. Jak? Pomocí Xpressa, opět…

Idea

Základem této myšlenky je, že ona zmíněná A-tools primitiva byla definovaná příliš složitě. Sekvence posunu celého objektu, úprava diagonálního řídícího prvku a například následná rotace byla plná překlikávání mezi dvěma objekty – základním objektem osy a řídícím objektem diagonální velikosti primitiva. A to nebylo úplně efektivní. Pravda. Objekt má i své výhody, zejména tu, že se stále jedná interně o primitivum, a tak k němu můžeme přistupovat, včetně editace všech parametrů segmentace a zaoblení.

Podstatně efektivnější by ale bylo, kdybychom mohli ovládat diagonální velikost objektu, polohu výchozího bodu (pivotu objektu) a natočení objektu v jedné chvíli, v jednom režimu, v jednom objektu a bez zbytečného přecházení z jednoho objektu do jiného. Pravda, nebudeme moci definovat jednotlivé parametry primitiva, ale ono je asi efektivnější nejdříve objekt skutečně rychle umístit a teprve poté ručně segmentovat, vždyť pomocí výběrových a strukturálních operací to je otázka pár vteřin (výběr prstence + vyjmutí hran). Abych poněkud podpořil své tvrzení a skutečně názorně vysvětlil, o co se mi jedná, připravil jsem krátké video (15 MB a 5 minut), které vše osvětluje.

Video ke stažení (Camtasia codec)

Příprava

Vytvoříme si tedy nový objekt primitiva Krychle a toto primitivum si ihned můžeme převést na polygony. Jako první krok si upravíme polohu os – pivotu objektu. Aktivujeme si tedy příkaz Struktura > Zarovnání os > Zarovnání os a všechny hodnoty os zadáme na -100%. Tím dostaneme osy do levého spodního rohu, do prvního bodu krychle. Ono si můžeme pro kontrolu zapnout editaci bodů, vybrat si tento bod (v osách) a zkontrolovat si ve Správci souřadnic, že se skutečně jedná o bod 0.

01

A který bude objekt – bod řídící? Bod 5, tedy bod diagonální od boru 0. To bude jediný bod, který nebude mít žádné omezení. Všechny ostatní body (tedy včetně bodu 0) budeme řídit pomocí XPressa.

02

Aplikujeme si na objekt vlastnost XPresso a otevřeme si Xpresso editor. Ihned do něj přeneseme objekt „Krychle“ ze Správce objektů, čímž vytvoříme uzel tohoto objektu. Tomuto objektu vytvoříme výstupní port Objekt.

Vytvoříme Nový uzel > Xpresso > Hlavní > Bod a tento uzel napojíme skrze vstupní port Objekt s portem Objekt uzlu Krychle.

03

Vytvoříme si nový uzel Nový uzel > Xpresso > Hlavní > Konstanta a tento uzel propojíme s portem Index bodu uzlu Bod. Hodnota tohoto uzlu (Konstanta) bude 0 (reálná) – jedná se o náš první bod.

04

Vytvoříme další port Nový uzel > Xpresso > Hlavní > Konstanta, avšak nyní přepneme ve Správci nastavení typ uzlu na Vektor a ponecháme v něm všechny hodnoty na 0. U uzlu Bod vytvoříme na levé (modré) vstupní straně port Pozice bodu. Spojíme port Pozice bodu uzlu Bod s uzlem Konstanta s vektorem 0,0,0. Tímto krokem zajišťujeme, že bod 0 bude vždy v místě os objektu.

05

Aby tomu tak skutečně bylo, musíme udělat ještě jednu věc. Musíme si označit uzel Bod a přejdeme do Správce nastavení, kde změníme typ tohoto uzlu z Globální na Lokální. To je velmi důležité z pohledu smysluplné funkčnosti celého systému.

06

Máme první bod definovaný, ještě jich musíme definovat šest, ale ty budou již krapínek složitější, i když ne o mnoho. Jedno ale je jisté, všechny budou svou polohou závislé na diagonálním bodu, který žádné řízení mít nebude.

Řídící bod 5 a řízený bod 1

Jako první z této série budeme editovat bod s indexem „1“. To je bod s výchozími souřadnicemi 0,200,0, tedy je ve směru osy Y nově zarovnaných os.

V editoru XPresso editoru si zkopírujeme (najednou) uzly Bod a Konstanta (s hodnotou reálného čísla 0). Zkopírovanou skupinu si přetáhneme mimo, řekněme pod stávající skupinku, odstraníme z uzlu Bod port Pozice bodu (to je velmi důležité!) a změníme obsah uzlu Konstanta na 5 – to je index řídícího bodu. Spojíme port Objekt uzlu Bod s portem Objekt uzlu Krychle (viz výše).

07

To, co jsme právě připravili, je soubor informací o poloze našeho hlavního řídícího bodu (bodu), tyto informace jsme s to analyzovat pomocí výstupního portu Pozice bodu uzlu Bod této skupiny. Nejdříve ale musíme tyto informace (tedy vektor polohy bodu) rozložit na tři nezávislé hodnoty X, Y a Z, protože každý jeden další bod (mimo 0) bude zpracovávat jen některou z těchto hodnot. Vytvoříme tedy uzel XPresso > Adaptér > Vektory2Reálná a tento uzel napojíme svým vstupním portem Vektor s portem Pozice bodu uzlu Bod, který analyzuje polohu řídícího bodu 5. Tímto jsme rozdělili vektor polohy tohoto bodu na tři nezávislé hodnoty. Na obrázku si všimněme hodnot 200 ve třech polích výsledků, to odpovídá poloze tohoto bodu, naše úvaha tedy byla správná…

08

A nyní k našemu bodu 1, který jsme si slíbili připravit. Opět si tedy zkopírujeme dva původní uzly Konstanta (s hodnotou 0) a Bod. Opět si je někam vhodně přemístíme. Opět napojíme port Objekt uzlu Bod s portem Objekt uzlu Krychle. Uzel Konstanta také změníme, upravíme hodnotu na 1 – což je index sledovaného bodu.

09

A nyní nás zajímá pozice tohoto bodu. Co o ní víme: hodnoty polohy X a Z jsou vždy 0, zatímco Y závisí na poloze bodu 5. Takže můžeme říci následující:

X(bod 1)=0

Y(bod 1)=Y(bod 5)

Z(bod 1)=0

Co z toho vyplývá? Do vstupního modrého portu uzlu Bod Pozice bodu musíme nějak dostat výše zmíněné hodnoty. Hodnoty 0 jsou velmi jednoduché, tam použijeme uzel Konstanta s hodnotou 0. Hodnota Y bodu 5 je již také zanalyzovaná (viz uzel Vektory2Reálná), jde tedy jen o to vytvořit uzel, do kterého všechny tyto hodnoty napojíme a následně pošleme do uzlu Bod bodu 1.

Vytvoříme si tedy nový uzel XPresso > Adaptér > Reálná2Vektory a tento uzel spojíme jeho výstupním! portem se vstupním portem uzlu Bod (bodu 1) Pozice bodu.

09

Vytvoříme si nový uzel Konstanta, který bude mít nastavenou hodnotu 0 a tento uzel umístíme někam vlevo od uzlu Bod bodu 1. Uzel Konstanta s hodnotou 0 spojíme s portem Reálná2Vektory a to tak, že uzel Konstanta bude napojen na porty X a Z. Do portu Y uzlu Reálná2Vektory napojíme hodnotu Y uzlu Vektory2Reálná, což je hodnota Y řídícího bodu 5.

13

Řízený bod 2

Celou skupinu řízeného bodu 1 si můžeme zkopírovat (tedy uzly Bod, Konstanta (napojená na index bodu) a Reálná2Vektory). Přemístíme si tuto skupinku a opět napojíme port Objekt uzlu Bod s portem Objekt uzlu Krychle. Hodnotu uzlu Konstanta změníme na 2, budeme editovat další bod.

Bod 2 je ve výchozím stavu v následující poloze

X(bod 2)=X(bod 5)

Y(bod 2)=0

Z(bod 2)=0

Tento bod je vpravo dole od os objektu (z pohledu úvodního obrázku).

Z toho tedy vyplývá, že do portu Reálná2Vektory napojíme do portu X hodnotu X z portu Vektory2Reálná bodu 5 a do ostatních portů hodnotu 0 z uzlu Konstanta.

11

Body 3, 4, 6 a 7

Je zřejmé, že další práce je stále stejná. Vždy si jen zkopírujeme skupinku uzlů Bod, Konstanta a Reálná2Vektory, upravíme hodnotu v uzlu Konstanta, řídícího index analyzovaného bodu a poté jen napojíme do portu Reálná2Vektory ty správné hodnoty. A jaké to jsou hodnoty?

Bod 3

X(bod 3)=X(bod 5)

Y(bod 3)=Y(bod 5)

Z(bod 3)=0

Tento bod je vpravo nahoře od os objektu v rovině čelní plochy (z pohledu úvodního obrázku).

Bod 4

X(bod 4)=X(bod 5)

Y(bod 4)=0

Z(bod 4)=Z(bod 5)

Tento bod je pod diagonálním bodem dole.

Bod 6

X(bod 6)=0

Y(bod 6)=0

Z(bod 6)=Z(bod 5)

Tento bod není v rámci obrázku vidět.

Bod 7

X(bod 7)=0

Y(bod 7)=Y(bod 5)

Z(bod 7)=Y(bod 5)

Z našeho pohledu nejvíce vzdálený bod…

12

Závěrem

Konec dnešního článku byl poněkud literárně stručný, ale doufám, že poměrně výstižný. Spolu jsme si připravili dva body, a další jsou již jen parafrází daného tématu. Není tedy asi moc co popisovat, protože systém jsme si podle mého popsali důkladně. Až budete se svým primitivem pracovat, nezapomeňte na to, co jsme si již řekli. Pro efektivní práci je dobré využívat zkratky 4 a 6 na Num. klávesnici pro pohyb celým objektem v rámci režimu editace bodů. Pak je základní editace skutečně velmi efektivní. A až skončíte s editací objektu, nezapomeňte Xpresso vypnout či smazat, aby Vám případně nastavené chování nečinilo při práci nějaké problémy.

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: