Zmatkynaplot - 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

Zmatkynaplot

28. června 2007, 00.00 | Jak si vytvořit takový jednoduchý, ale realistický plot v případě, že bychom jej potřebovali modelovat a nechtěli využít jen vhodně připravenou texturu? Že by to bylo složité? Nikoliv, naopak, je to překvapivě jednoduché.

Idea a systém

Možná si pamatujete mou scénu Nature wins, na které jsem kdysi testoval modul Hair a jeho využití ve formě travin. V této scéně jsem potřeboval mimo jiné také nějaký plot, a tak jsem tehdy dumal nad tím, jak si jej velmi jednoduše připravit. Dnes se tedy na tento postup podíváme společně, a pokud jej využijete, budu jen rád…

Základním objektem tvorby našeho plotu je jednoduchá křivka Vzorec ve svém základním nastavení, což značí sinusovku. Ono se to nezdá, ale toto nastavení nám bude stačit, jen si musíme uvědomit, co všechno budeme potřebovat změnit a proč.

Vzorec obsahuje následující hodnoty:

X(t) = 100.0*t

Y(t) = 100.0*Sin(t*Pi)

00

Poté ještě definujeme délku funkce v hodnotách opakování Tmin a Tmax, kdy hodnota 1=Pi, celá sinusovka tedy vznikne při rozteči 2 (například Tmin=-1 a Tmax=1).

Když víme, co potřebujeme, měli bychom si ještě říci, jak je takový plot pletený. Všiml jsem si, že je pletený většinou ve vertikálních prvcích, tedy i my použijeme uvedenou skutečnost a natočíme si objekt křivky o 90 stupňů, aby směřoval vzhůru. Mimo jiné také nastavíme typ interpolace bodů křivky na žádné.

V tomto bodě je nutné malé zastavení a letmý pohled do budoucnosti. Co nás čeká. Potřebujeme si nastavit vytvářenou křivku tak, aby měla jednoduchou strukturu bodů, která zároveň bude vhodná pro další ruční editaci, až křivku převedeme do editovatelného tvaru. Z toho důvodu by bylo výhodné, aby jedna celá sinusovka měla 6 bodů (vlastně 7, pokud počítáme i bod, který by byl společný s další pokračující sinusovkou). První bod je v bodě 0,0, další před vrcholem prvního oblouku v maximální poloze, druhý ve stejné poloze v jednom směru, ale výše, další opět v poloze nulové – další opět v poloze maximální, ale v negativním směru a poslední opět v té samé poloze, jen o něco výše (viz obrázek). Taková křivka se nám totiž bude velmi dobře upravovat a řídit, a pokud ji posléze použijeme ve tvaru nurbsové křivky, bude vše dokonalé…

01

Abychom dosáhli výše zmíněné interpolace, musíme vždy vhodně nastavit hodnotu segmentace (vzorků) křivky. Tato hodnota by měla vycházet z následující úvahy.

Počet vzorků = Abs(Tmax – Tmin)*3. Na to si klidně můžeme vytvořit i maličké XPresso. V takovém Xpressu pak můžeme nechávat výpočet vzorků automatizovaný, což možná není od věci…

02

Co dále. Velikost ve směru osy X (tedy v tomto případě, jelikož máme křivku natočenou, tak se jedná o výšku) je rovna výpočtu Abs(Tmax – Tmin)*hodnota velikosti ve vzorci pro X(t). Zde zadáme například hodnotu 7, hodnotu u vzorce pro Y(t) zadáme 4.

Nastavení X, Y, Z

Známe všechny parametry, které potřebujeme upravit. Abychom tedy měli své modely všichni stejné, nastavíme si stejně i křivku samotnou. Již jsme si řekli, jak bude vypadat nastavení vzorců pro X(t) a Y(t). Jen pro úplnost si to shrneme.

X(t)= 7.0*t

Y(t)= 4.0*Sin(t*pi)

Tmin=0

Tmax=27

Vzorků=81 (což může vypočítat XPresso)

Křivka je tak velká 189 jednotek, což je asi na plot akorát.

Jenže… Je tu jeden problém. Musíme křivku vhodně nastavit i v posledním (Z) směru, protože se nám musí drát správně proplétat. A to nemusí být zase tak jednoduché. I když… i zde samozřejmě můžeme použít vzorec. Ten by měl vypadat takto.

Z(t)=0.5*Sin(t*pi*8), kde 0.5 je velikost odchylky. Díky tomuto nastavení vznikne prostorová sinusová křivka, která bude pro účely plotu dokonalá.

03

Můžeme si zkopírovat naši křivku, a pokud jsou souřadnice původní křivky (0,0,0) a rotace (0,0,-90), tak novou křivku umístíme na polohu 0,0,6. Musíme křivku převrátit. Ale to je velmi snadné, stačí upravit Y(t), kde zadáme Y(t)= -4.0*Sin(t*pi), a také Z(t), kde zadáme Z(t)=-0.5*Sin(t*pi*8).

04

Dokončení

V této chvíli můžeme obě křivky převést do editovatelného tvaru. Obě křivky si vybereme a můžeme je pomocí příkazu Funkce - Spojit, spojit do nové křivky. U obou segmentů nové křivky smažeme první a poslední bod. To aby vzniklo přirozené křížení. Jistě asi můžete namítnout, proč že jsme vlastně takto nepřipravili křivku již ve vzorci. Ono by to samozřejmě šlo, ale složitě bychom dosahovali správné vnitřní segmentace, takže tento postup je asi jednodušší a ve výsledku rychlejší.

05

Vytvoříme si objekt ProtaženíNURBS a pod tento objekt vložíme námi připravenou křivku. Mimo to tam také vložíme primitivní křivku N-stěn, kterou nastavíme na hodnotu 0,25 poloměr a 8 segmentů. Tato křivka bude pod ProtaženímNURBS jako první, pod ní bude cesta – tedy křivka pletiva.

06

Můžeme si vybrat objekt ProtaženíNURBS a provést příkaz Funkce > Duplikovat. Nastavíme tvorbu instancí (Duplikovat > Generovat instance), zadáme počet podle potřeby a také vzdálenost kopií – což bude 12 (vyplývá to z šířky křivky).

07

Až se nám instance vytvoří, vše, instance i původní objekt dáme pod objekt Osy a tento objekt pět vložíme pod objekt Osy. Proč to? Protože nyní můžeme celý plot ovlivňovat například deformátory a to stojí za úvahu…. Co jej třeba obtočit okolo sloupku…

08

final_01

Tématické zařazení:

 » 3D grafika  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

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: