Trávník v 3D Studiu Max - 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

Trávník v 3D Studiu Max

25. dubna 2003, 00.00 | V dnešním tutoriálu si ukážeme, jak v 3D Studiu MAX efektivně vytvořit realisticky vypadající trávník, jaký roste na louce. Použijeme k tomu především funkci Scatter a pro modelování křivky Splines.

U tohoto tutoriálu předpokládám alespoň základní znalosti 3D Studia MAX. Před započetím práce resetujte nebo restartujte 3D Studio. K tutoriálu je přiložen .zip soubor, který obsahuje základní scénu s osvětlením a kamerou a všechny nezbytné textury, které budete k realizaci tohoto tutoriálu potřebovat. Scéna byla vytvořena pomocí 3D Studia verze 5, což může způsobit nekompatibilitu s nižšími verzemi.

Jak už tedy bylo řečeno v úvodu, pokusím se vám co nejlépe popsat tvorbu trávníku. V základní scéně, kterou si před započetím práce otevřte z přiloženého souboru je již vytvořeno základní jednoduché osvětlení. Pomocí dialogu Environment si do scény ještě přidejte oblohu (Rendering > Environment). Klepněte na tlačítko Environment Map a ze seznamu vyberte Bitmap jako bitmapu zvolte obrázek Cloud2.jpg z přiloženého .zip souboru. Do tohoto prostředí vytvořte základní objekt Plane o rozměrech
Length = 500
Width = 500
Length Segs. = 40
Width segs. = 40


Teď ještě aplikujte modifikátor Noise s parametry:
Fractal = on
Interations = 10
Strength => Z = 25


Po dokončení by měl být objekt nepravidelně zvlněný. Objekt pojmenujte třeba Ground.
Nyní se přesuňte do Material Editoru. Zde vytvoříme materiál pro Ground, který, jak jste asi uhodli, představuje povrch země. Bude to jenom jednoduchý materiál, kde nadefinujeme složku Diffuse a Bump. Do složky Diffuse tedy přiřaďte obrázek straw2.jpg z přiloženého .zip souboru a v parametrech bitmapy zvolte opakování vzoru (Tiling) ve složkách U i V na 5. Vraťte se o úroveň výše a metodou Instance složku Diffuse zkopírujte do složky Bump. Poté ještě upravte hodnotu Bump na 100 místo defaultních 30. Tím je materiál hotový a můžete jej přiřadit objektu Ground. Je možné, že pokud nyní scénu vyrenderujete, bude vám v některých místech dělat textura neplechu, že bude třeba někde špatně natažená nebo naopak zase zmáčklá. To napraví modifikátor UVW Map. Mapping nastavte na Planar a u kolonek UVW Tile zaškrtněte políčka Flip jako aktivní. Teď už by mělo být vše v pořádku. Pokud jste ovšem na objektu nezpozorovali žádné chyby v texturování, zmíněný modifikátor vůbec nemusíte použít. Pro kontrolu zde přiložím obrázek, jak by scéna v této fázi měla přibližně vypadat.



Základ bychom tedy měli, teď nás čeká modelovací část. Přepněte se do pohledu "zepředu", tedy Front a vyberte si, že chcete kreslit křivky. Zvolte nástroj Line. Nakreslete jednoduchý trojúhelník, útvar by měl být pokud možno velmi úzký a vysoký, takový jako na obrázku níže. Na velikosti objektu teď vůbec nezáleží, ten budeme později stejně modifikovat. Pro přehlednější práci bych však doporučil větší rozměry. Tento objekt bude představovat stéblo trávy. Protože jej pochopitelně bude třeba ohnout, musíme ho rozdělit na více segmentů. Toho docílíme tak, že si pro editaci zvolíme Segment (viz. obrázek:) , vybereme obě boční strany trojúhelníku. Pokud sjedete se šoupátkem na boční liště dolů, objevíte až skoro u konce tlačítko Divide. Do políčka vedle vepište číslo 4 (to bude počet segmentů, na které vybrané úseky rozdělíte) a klepněte na tlačítko. Výsledek by měl být patrný ihned. Na obrázku je postup tvorby ještě rozveden graficky:



Teď zrušte výběr všech vertexů a segmentů a zvolte celou křivku. V seznamu modifikátorů vyberte Extrude. Jeho parametry neměňte, jenom objekt zkonvertujte na Editable Mesh (RMB => Convert To => Editable Mesh). Objekt teď dvakrát zkopírujte (metodou Copy, nikoliv Instance nebo Reference) a pojmenujte vzniknuvší stébla trávy Grass01, Grass02 a Grass03. Vyberte Grass01 a ohněte objekt modifikátorem Bend. Hodnoty zadejte takto:
Angle = 125
Axis = Y


Vidíte, že k ohnutí došlo, ovšem ve špatném směru. Snadná pomoc! Klepněte na malé "plus" před nápisem Bend v zásobníku modifikátorů, čímž docílíte rozbalení nástrojů nástroje Bend. Zřejmě vidíte dvě položky, takže zvolte první z nich, kterou je Gizmo. Pro kontrolu viz. obrázek:



Ikona ve viewportu by měla změnit barvu z oranžové na žlutou, což znamená, že s ním můžete pracovat. Vyberte nástroj pro rotaci Rotate buď prostřednictvím nabídky pravého tlačítka na myši nebo nástrojového panelu nahoře a klávesou F12 vyvolejte dialog Rotate Transform Type-In. Ujistěte se, že jste stále přepnuti do viewportu Front a do kolonky pro osu Y sloupce Offset: Screen vepište hodnotu 90. Znamená to, že se působení modifikátoru otočí o 90° podle osy Y. Pokud se nyní přepnete do perspektivního průhledu Perspective a otočíte pohledem kolem dokola, uvidíte, že teď už je stéblo ohnuto tak, jak má být. Ale pořád ještě zbývá jedna drobnost. Přepněte se do pohledu z leva Left a vycentrujte pohled na objekt, se kterým právě pracujete. Měli byste vidět něco takového:



My ovšem potřebujeme, aby objekt vycházel ze své počáteční úrovně kolmo, protože jinak bude v konečném výsledku vypadat nepřirozeně. Pokud jste tak ještě neučinili, zrušte výběr podobjektu Gizmo a zvolte celý objekt Grass01. Pomocí funkce Rotate ho otočte tak jak, je na obrázku.



Teď ho opět zkonvertujte jako Editable Mesh. Stejný postup s ohýbáním a otáčením nyní aplikujte i na zbylá dvě stébla trávy. Rozdíl bude v hodnotách, jaké zadáte do kolonky Angle u modifikátoru Bend. U objektu Grass02 to bude 100 a u Grass03 zadejte 130. Objekt Grass03 ještě trochu "zmáčkněte" nástrojem Non-Uniform Scale (k nalezení na hlavním panelu vedle tlačítka Rotate, je to druhá položka v rolovací nabídce - viz. obrázek níže) tak, aby "ležel víc při zemi". Po dokončení této akce by měla stébla vypadat asi takto:



Tímto krokem se již blížíme k závěrečné fázi tvorby, ale ještě předtím je nutno vytvořit materiály pro jednotlivá stébla trávy. Otevřte si tedy Material Editor a do prvního volného materiálového slotu vytvořte materiál pro objekt Grass01:
Shader = Blinn
Ambient RGB = 15;55;12
Diffuse RGB = 32;95;23
Specular RGB = 251;249;242
Specular Level = 50
Glossiness = 40


Materiál pro Grass02:
Shader = Blinn
Ambient RGB = 59;81;0
Diffuse RGB = 104;121;59
Specular RGB = 251;249;242
Specular Level = 40
Glossiness = 30


Materiál pro Grass03:
Shader = Blinn
Ambient RGB = 102;84;12
Diffuse RGB = 160;143;92
Specular RGB = 251;249;242
Specular Level = 50
Glossiness = 25


Jak vidíte, materiály jsou to velmi jednoduché, ale svému účelu poslouží dostatečně.
Teď už se tedy můžeme vrhnout na závěrečný krok, který nám ze tří stébel udělá celý trávník. Použijeme funkci Scatter, kterou najdete na pravé nástrojové liště pod nabídkou Compound Objects (Create > Geometry > Compound Objects). Vyberte objekt Grass03, který bude tvořit podklad - i jeho materiál, připomínající barvou suchou trávu o tom vypovídá. Pokud máte objekt Grass03 vybraný, klepněte na tlačítko Scatter a na pravé liště se objeví jeho interface, který je na první pohled velmi složitý se spoustou funkcí. Ale nenechte se odradit, na následujících řádkách vám samozřejmě objasním, co která funkce znamená.
Klepněte na tlačítko, které je hned první a nese název Pick Distribution Object a následně vyberte objekt, na kterém chcete, aby "rostla" tráva, tedy Ground. Teď jste možná ještě žádnou změnu nezaznamenali, ale to se hned změní. Sjeďte s lištou až úplně dolů, kde je roletka nazvaná Display. Zde nastavte tyto parametry:
Mesh = on - Mesh vám zobrazí celou geometrii, kdežto Proxy pouze její symbolické ztvárnění (vhodné pokud pracujete se složitou geometrií)
Display % = 1 - zobrazí pouze 1% všech stébel trávy. Vzhledem k jejich množství (8000) je to vhodné, pokud máte pomalejší počítač. Pokud ale máte silný stroj, můžete nechat i 100%
Hide distribution object = on - V opačném případě se vám zobrazí (a bude se i renderovat) distribuční objekt, což je v tomto případě nežádoucí.

Pak ještě klepněte na tlačítko New Seed - určí náhodné rozmístění jednotlivých stébel trávy. Toto tlačítko nezapomeňte použít i při objektech Grass02 a Grass03
Teď už se můžete zase přesunout nahoru, výše uvedená nastavení jsme provedli jako první, protože pokud bychom nechali zobrazovat všechny objekty, mohlo by u pomalejších počítačů dojít k velkému znepříjemnění práce.
Přesuňte se tedy zpět na začátek, počátek roletky Scatter Objects, která má více méně pouze informační význam můžete přeskočit a věnujte svou pozornost až oddílu Source Object Parameters. Jeho parametry nastavte takto:
Duplicates = 8000 - množství duplikátů, které se budou renderovat (tedy 8000 stébel trávy)
Base Scale % = 30 - poměr velikosti původního a konečného objektu v procentech. Pokud jste tedy udělali stébla trávy moc veliká (jako že pravděpodobně ano), zde nastavte jejich velikost tak, aby odpovídala vašim představám. Pro orientaci můžete použít také obrázek níže.
Následuje skupina Distribution Objects Parameters:
Perpendicular = off - tuto položku musíte vypnout, protože jinak by stébla trávy rostla kolmo k polygonům, z nichž vyrůstají. Takže v tomto případě rozhodně vypnout!
Use Selected Faces = off - po zapnutí bude tráva vyrůstat jenom ze zvolených částí objektu. Dobrá funkce, pokud chcete trávu jen na určitých místech. Nyní ji však vypněte.
Distribute Using = Random Faces - stébla trávy budou růst na náhodně generovaných místech, nebude v nich tedy žádná pravidelnost, což potřebujeme
Nyní jsme se dostali k roletce Transforms, která slouží, jak už její název napovídá, k transformacím jednotlivých objektů. Pro tuto akci se přesvědčte, že se na scénu díváte z pohledu kamery.
Rotation X = 10 deg.
Rotation Y = 360 deg.
Ratation Z = 45 deg.

Tyto funkce určují, v jakém rozsahu mohou být jednotlivá stébla natočena.
Části Local Translation a Translation on Face přeskočte. Při zadání kladných hodnot objekty získávají jakousi toleranci a stalo by se, že by se vám pak tráva vznášela nad zemí. Zajímavější už je pro nás záložka Scaling, která určuje toleranci měřítka jednotlivých objektů v procentech:
Scaling X = 50
Use Maximum Range = on
- pokud je zapnuto, znamená to, že v osách X, Y a Z bude stejná hodnota, která se automaticky nastaví podle největší z nich. V praxi, tedy pokud chcete stejnou toleranci pro všechny tři osy, stačí zadat jednu z nich a zaškrtnout toto tlačítko.
Tímto by měla být první vrstva dokončena. Na zbylé dvě stébla postupně použijte stejný postup jako u toho prvního, parametry jsem vypsal níže:

Scatter pro Grass02:
Duplicates = 10000
Base Scale = 20
Perpendicular = off
Distribute Using = Random Faces
Rotation X = 25
Rotation Y = 360
Rotation Z = 45
Scaling X, Y, Z = 100


Scatter pro Grass03:
Duplicates = 15000
Base Scale = 20
Perpendicular = off
Distribute Using = Random Faces
Rotation X = 25
Rotation Y = 360
Rotation Z = 25
Scaling X, Y, Z = 50


Na obrázku vidíte, jak by přibližně vaše scéna měla vypadat v této konečné fázi:



A takhle má vypadat obrázek po vyrenderování:



Možná si řeknete, že na louce by měly být ještě nějaké květiny, popřípadě třeba nějací motýli, ale to už bych zdaleka přesáhl rámec tohoto tutoriálu, takže květiny a další "rekvizity" si nechám na další články. Na závěr vám přeji hodně úspěchů při virtuálním "zatravňování".

Tématické zařazení:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: