3D Studio MAX: Tvorba realistické planety - 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

3D Studio MAX: Tvorba realistické planety

zeme

31. ledna 2003, 00.00 | Dnes se zaměříme na problém, jak vytvořit v 3D Studiu MAx realisticky vypadající planetu a to včetně atmosferických efektů, detaily povrchu a mraků.

{Tvorba planety} V minulém tutorialu jsem nakousl efekty v 3D Studiu MAX (animace exploze) a dneska bych v nich rád pokračoval popisem tvorby realisticky vypadající planety, což je velmi často realizovaná a řekl bych docela obtížná scéna. Největší potíž nastává, chcete-li, aby se kamera přiblížila velmi blízko. Planety jsou obrovské a nastává problém s atmosferickými efekty, se zubatostí textur a detailností povrchu a mraků. Těmto problémům se právě věnuje tento můj tutoriál a možná, že jeho přečtení Vám pomůže k tomu, abyste tvořili planety stejně kvalitní jak ve filmech o Hvězdných válkách a podobných.

Klikněte pro zvětšení

Klikněte pro zvětšení

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 a poté si z přiloženého adresáře načtěte základní scénu scene.max - je uložena v 3DS MAX 5, což bohužel může způsobit nekompatibilitu s nižšími verzemi. 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.

Prvním krokem bude vytvoření samotné planety, coby fyzického objektu. Budeme tvořit nějakou anonymní planetu s relativně jednoduchým pustým povrchem, protože pokud bychom modelovali některou ze známých planet, nevyhnuli bychom se použití obrovských textur a to by bylo pro účely tohoto článku přinejmenším nepraktické. Vytvořte tedy základní objekt "GeoSphere". Dávám tomuto objektu přednost před klasickým objektem "Sphere", protože je poněkud "hladší". Zarovnejte ji na souřadnice X=0; Y=0; Z=0 a v parametrech nastavte Radius=60000; Segments=100. Objekt pro lepší orientaci pojmenujte třeba "planet". Možná se divíte, proč děláme objekt pro planetu tak obrovský. Je to z toho důvodu, že pokud bychom udělali planetu malou (dejme tomu radius=1000), šlo by to dobře poznat a nevypadala by zdaleka tak dobře jako teď - mám to odzkoušené :-) Dále zapněte funkci "Slice On" a do řádku "Slice from" zapiště hodnotu 180. To způsobí, že z koule se stane polokoule, ušetříme tím polygony a o něco málo urychlíme rendering (což mohou ocenit zvláště majitelé pomalejších strojů). Jako vedlejší efekt tato akce ještě ovlivní způsob mapování materiálu, takže pokud chcete, aby Vaše planeta vypadala úplně stejně jako ta moje, doporučuji tuto funkci zapnout. Co se týká modelování, tak jsme v tomto tutoriálu prakticky u konce, zbytek už je jen o materiálech a efektech.

Teď se pustíme do tvorby materiálu pro povrch planety. Otevřte si tedy "Material Editor" a vyberte první materiálový slot. V rolovací nabídce "Shader Basic Parameters" nastavte jako typ stínování "Oren-Nayar-Blinn". Je to varianta stínovacího algoritmu "Blinn", ale její parametry se hodí víc k našemu účelu, protože měkčeji rozptyluje světlo a nevytváří ostré odlesky. Ale při správném nastavení parametrů byste s úspěchem mohli použít i standartní algoritmus "Blinn" nebo "Phong". Dále nastavíme základní barvy Ambient, Diffuse a Specular podle následujících parametrů:
Ambient RGB=0,0,0
Diffuse RGB=201,194,149
Specular RGB=255,255,255


Položky "Specular Level" a "Glossiness" nastavte na nulu - žádné odlesky na povrchu nechceme.
Dále se přesuňte do roletky "Maps". Tady teprve začne legrace. Klepněte na tlačítko u položky "Diffuse Color", která představuje barvu materiálu. Jako typ materiálu zvolte "Smoke". Zobrazí se okno s parametry pro tento materiál. Nabídky "Coordinates" si nevšímejte a věnujte svoji pozornost spíš té pod ní: "Smoke Parameters". Je zde několik nastavení, které si teď projdeme.
"Size" logicky znamená velikost vzoru. Nastavte tedy Size=15000
"Interations" určuje členitost vzoru. Minimum je 1, maximum 10. My potřebujeme maximální detaily, takže Interations=10
Kolonka "Phase" je spíše kosmetická úprava a určuje náhodné rozložení vzoru. Já jsem zadal hodnotu 2, ale vy si klidně můžete zadat jiné číslo. Tato hodnota přímo neovlivňuje kvalitu nebo vzhled materiálu, jen jeho rozmístění.
"Exponent" je navdory tomu zase velmi důležitá volba, která určuje hustotu vzoru. Nastavte Exponent=0,5.
Teď ještě zbývá nastavit barvy. Takže:
Color#1 RGB=127;121;89
Color#2 RGB=190;183;128


Teď klepněte na kolonku patřící k "Color#1". Typ materiálu nastavte opět na "Smoke" a parametry zadejte takto:
Size=3000
Phase=1
Interations=10
Exponent=0,5
Color#1 RGB=64;64;64
Color#2 RBG=255;255;255


A aby toho nebylo málo, přiřaďte ještě jeden "Smoke", tentokrát však ke "Color# 2". Jeho parametry jsou:
Size=1000
Phase=0
Interations=10
Exponent=1,5
Color#1 RGB=117;113;91
Color#2 RBG=88;76;56


Teď se proklikejte na základní úroveň a zkopírujte pomocí funkce "Instance" právě vytvořený materiál ze složky "Diffuse color" do "Specular Color"
Posléze udělejte ještě jednu kopii funkcí "Copy" do položky "Bump", která slouží pro simulaci nerovností povrchu - její hodnotu nastavte na 40. Tady ale provedeme jisté změny. V první úrovni materiálu ve slotu "Bump" necháme vše tak jak je, změny nastanou až na další úrovni, v materiálu pro "Color #1. Nastavte zde tyto hodnoty:
Size=6000
Phase=1
Interations=10
Exponent=0,5
Color#1 RGB=92;92;92
Color#2 RBG=255;255;255


Na další úrovni provedeme také změny a to:
Size=300
Phase=0
Interations=10
Exponent=1,5
Color#1 RGB=136;136;136
Color#2 RBG=255;255;255


Teď ještě zbývá dotvořit materiál povrchu položkou "Self-Illumination", která zajístí větší světlost materiálu (působí, jakoby povrch planety sám byl jakýmsi zdrojem světla). Materiál nastavte na "Mask" a do kolonky "Map" i "Mask" zvolte materiál "Falloff". Přesuňte se do položky "Map" a nastavte parametry:
Falloff Type=Fresnel (určuje, jakým způsobem se bude mapa Falloff chovat)
Index Of Refraction=3 (udává rozsah své působnosti)
Teď se přesuňte do mapy "Mask". Tam nastavte Falloff Type=Shadow/Light. Znamená to, že "Falloff" mapa se bude uplatňovat pouze tam kde je objekt osvětlen (podle přímé úměrnosti).
Nakonec svůj materiál pojmenujte "Surface"
Hotovo. Můžete si zkusit scénu vyrenderovat. Pro kontrolu správnosti postupu přikládám obrázek, jak by měla vyrenderovaná scéna v této fázi vypadat.

Klikněte pro zvětšení

Klikněte pro zvětšení

[-more-]{Tvorba mraků} Nyní se vrhneme na tvorbu mraků plovoucích nad povrchem planety. Postup bude podobný jako při tvorbě povrchu. Protože máme planetu i mraky jako jeden objekt, musíme vše zakomponovat do jednoho materiálu. Přesuňte se tedy na základní úroveň materiálu. Vedle názvu materiálu by se mělo vynacházet tlačítko s textem "Standard". Klepněte na něj a z nabídky materiálů, které se zobrazí vyberte "Blend". Zvolte, že chcete ponechat současný materiál jako submateriál (Keep old material as submaterial). Zbrazí se dialog, kde bude místo pro dva materiály a masku, dále pak tzv. Mixing Curve. Jako "Material 1" byste měli mít přiřazen "Surface", ostatní jsou prázdné. Klepněte na "Material 2" a hned zpočátku ho pojmenujte "Clouds". Shader ponechte na "Blinn", základní barvy nastavte všechny tři na RGB=229;229;229. Hodnota Specular Level=15 Dále pak ještě do políčka "Self-Illumination", které se nachází v záložce "Blinn Basic Parametrs" vepište hodnotu 100.
Přesuňte se do složky "Maps". Diffuse Color=Smoke. Parametry:
Size=6000
Phase=0
Interations=10
Exponent=0,5
Color#1 RGB=191;188;175
Color#2 RBG=229;229;229


Barvě "Color #2" přiřaďte materiál "Smoke":
Size=1200
Phase=0
Interations=10
Exponent=0,5
Color#1 RGB=136;134;127
Color#2 RBG=229;228;219


Nyní se přesuňte na základní úroveň materiálu "Clouds" a zkopírujte "Diffuse Color" do "Specular Color", "Spelular Level" a "Bump". Hodnotu "Bump" nastavte na 200.
Tím by byly hotovy mraky, přesuňte se proto ještě o úroveň výš (na tu nejvyšší), abychom mohli dát materiálu finální podobu. Pokud byste nyní scénu vyrenderovali, nezpozorovali byste žádný rozdíl mezi planetou s vytvořenými mraky a tou bez mraků. Je to proto, že jsme ještě nedefinovali materiál pro viditelnost mraků, tedy materiál "Mask". Ale to hned napravíme. Stejně jako v předchozích případech vyberte i teď materiál "Smoke". Bude skoro shodný s materiálem pro mraky. Parametry jsou:
Size=6000
Phase=3
Interations=10
Exponent=0,5
Color#1 RGB=0;0;0
Color#2 RBG=255;255;255


Pro "Color 2" vyerte opět "Smoke":
Size=1200
Phase=0
Interations=10
Exponent=0,5
Color#1 RGB=191;191;191
Color#2 RBG=229;229;229


Pokud se teď přesunete na výchozí úroveň, zaměřte ještě svou pozornost směrem k funkci "Mixing Curve", která udává křivku mixáže obou materiálů. Abyste s ní mohli pracovat, zaškrtněte přepínač "Use Curve". Hodnoty "Transition Zone" nastavte takto: Upper=0,55, Lower=0,4. Teď si můžete scénu zkusit vyrenderovat a porovnat ji s mým obrázkem.

Klikněte pro zvětšení

Klikněte pro zvětšení

Vidíte, že teď už se naše dílo pomalu začíná podobat jakési planetě. Co tam ale ještě chybí je atmosféra, protože mraky bez atmosféry samozřejmě nemůžou existovat. Takže jak na ni? Použijeme atmosférický efekt "Volume Light". Vytvořte tedy základní světlo "Omni" a umístěte ho doprostřed planety (ale pozor na funkci "Align", pokud ji hodláte použít, protože naše planeta není koule, ale polokoule a pokud byste světlo zarovnali na střed této polokoule, tak by se vám posunulo na ose Y v podstatě do 3/4 planety). Pojmenujte ho "Atmosphere" a poté upravte jeho vlastnosti jak je popsáno níže:
Multiplier=1
Color RGB=193;180;146
Far Attenuation: Use=on; Show=on
Far Attenuation: Start=59000; End=60200


V záložce "Atmospheric Effects" klepněte na tlačítlo "Add" a z nabídky vyberte efekt "Volume Light" a pak "OK". Vybraný efekt by se Vám měl zobrazit v okýnku. Vyberte ho a pak klepněte na tlačítko "Setup". Objeví se dialog s parametry efektu. Já jsem si svůj efekt pro větší přehlednost pojmenoval "Atmosphere". Ať už zvolíte název vlastní nebo ponecháte standardní, v ostatním nastavení už se řiďte následujícími řádky:
Fog Color RGB=201;194;149
Exponential=on
Density=10
Max. Light%=100
Min. Light%=0


Klikněte pro zvětšení

Klikněte pro zvětšení

Teď scénu doplníme ještě jedním světlem, které utvoří stratosféru planety. Vytvořte opět světlo typu "Omni" a pojmenujte ho stratosphere. Zarovnejte ho stejně jako to předchozí. Jeho parametry nastavte takto:
Multiplier=1
Color RGB=196;187;174
Far Attenuation: Use=on; Show=on
Far Attenuation: Start=55000; End=60800


Přiřaďte mu stejný efekt jako u předchozího světla, tedy "Volume light". V Setupu jeho vlastnosti nastavte takto:
Fog Color RGB=201;194;149
Density=1
Max. Light%=100
Min. Light%=0


Teď scénu vyrenderujte. Po tomto zákroku by se měla planeta přikrýt pod atmosférický obal a dostat celkový pískový nádech jako na následujícím obrázku. Zároveň jste dosáhli cíle tohoto tutoriálu. Jak vidíte, nepoužili jsme žádnou texturu, ale pouze procedurální materiály, což bylo mimo jiné taky cílem. S použitím velkých textur by se samozřejmě dalo dosáhnout ještě daleko lepších výledků, třeba takových jako na posledním obrázku, který byl vytvořen stejným postupem, ale pro povrch a mraky planety jsem použil veliké textury. Ty jsou k dostání zdarma na stránkách NASA a to: http://earthobservatory.nasa.gov/Newsroom/BlueMarble/ Jsou uloženy ve formátu .TIFF, jsou ale docela velké - až 50 MB.
Dlaším kvalitním zdrojem planetárních textur (tedy nejen Země) je: http://gw.marketingden. com/planets/planets.html
Na závěr Vám přeji hodně úspěchů s tvorbou dalších vlastních planet.

Klikněte pro zvětšení
Klikněte pro zvětšení

Klikněte pro zvětšení

Klikněte pro zvětšení

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: