3 DS Max: Statické kapky vody - Grafika.cz - vše o počítačové grafice

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

3 DS Max: Statické kapky vody

voda

24. ledna 2003, 00.00 | V tomto návodu si ukážeme krok za krokem, jak vytvořit v maxovi realistické kapky vody pomocí particles. Prozradím Vám také způsob, jak rozzářit vaše kapičky třpitivými caustics ve standardním Scanline rendereru maxe.

Abyste měli na začátku nějakou motivaci, tak tento tutorial vás dovede k tomuto obrázku:

0

Začneme podkladem. Nejjednodušší bude Plane - dohodneme se na Width=100, Length=200. X,Y,Z ponecháme 0 a zmáčkneme Create. Detailisti si můžou "Plane01" přejmenovat na "podklad".

Na vytvoření kapek použijeme částicový systém PArray, který dovoluje jako emitor částic použít libovolný objekt a generuje MetaParticles. Ty jsou ideální právě na simulaci slučování molekul kapaliny do jednotlivých kapek rozdílných tvarů a velikosti.
Jako emitor bychom mohli použít rovněž náš podklad, ale kvůli lepší kontrole si vytvoříme ještě jednu pomocnou Plane, menší než je podklad, abychom se vyhnuli kapkám mimo podkladovou desku na jejích okrajích. Zadejme Width=50, Length=180. (Když se budete držet přesně těchto čísel, vyhnete se zbytečným problémům. Metaparticles se totiž umí zachovat celkem překvapivě i při nejmenší změně některých parametrů.) Nazvěte nový objekt "emitor" a kliknutím pravým tlačítkem v aktivním viewportu otevřte panel jeho Properties.
Když chceme tento objekt použít jen  jako emitor pro PArray, ale nechceme ho vidět v renderu, vypneme mu Renderable, jak to ukazuje screenshot vpravo.


Klikněte pro zvětšení

Teď se můžeme vrhnout na particles. Vytvořte PArray (úplně jedno kde, pozice, orientace ani velikost gizma nehrají žádnou roli) a pojďme rovnou na parametry. Budeme popisovat jen ty, které změníme oproti default hodnotám. Ostatní vyhovují jak jsou anebo nebudou pro nás důležité. Takže pěkně shora dolů:

Basic Parameters
Přes [Pick Object] vyberte náš emitor. Viewport Display přepneme na Mesh a Percentage of Particles vypálíme na 100%. Chceme totiž vidět  naše metaparticles přesne tak, jak vyběhnou z renderu.

Particle Generation
Počet částic, které budou statické, budeme celkem logicky určovat jejich celkovým počtem a ne frekvencí generovaní. Takže přepněte na Use Total a zadejte 100. Speed snižte na 0. Aby bylo hned v prvním "frejmu" všech 100 částic vytvořených, musíme zadat Emit Stop = 0. Potom tu máme Particle Size - já jsem zvolil Size = 8 a Variation 50 % (nejdřív s tím můžete experimentovat, správná velikost samozřejmě závisí na velikosti a charakteru scény). Důležité je zrušit efekt postupného narůstání a zmenšovaní částic po dobu jejich života. Takže Grow For = 0 i Fade For = 0. Jinak bychom v prvním snímku neviděli nic, kapky by nám vyrostly do velikosti 8 až v desátém snímku.

Particle Type
Jak jsme už říkali, zvolíme tu MetaParticles. V MetaParticle Parameters můžete ponechat Tension = 1 a Variation = 0, i tak budou kapky dostatečně rozdílné, když Variation při Size je 50 %, při čemž velikost částic se pohybuje od 4 do 12 jednotek. Když půjdete při experimentovaní s tenzí dolů k nule, metaparticles začnou nabývat podobu standardních kuliček (porovnejte si přepnutím na Standard Particles a Sphere), při zvyšovaní Tension bude naopak hustota hmoty okolo jednotlivých metaparticles klesat rychleji s narůstajícím poloměrem, takže bude potřeba více částic u sebe, aby vytvořily kapku. Museli bychom teda zároveň výrazně zvýšit celkový počet generovaných částic a zmenšit jejich poloměr. Ale to by už šly i ty nejsilnější stroje do kolen, takže opatrně ;O)
Když si chcete zkontrolovat parametry vizuálně, zde jsou screenshoty:

Kapky máme hotové, můžeme si nahodit kameru. Já jsem použil Free Camera, Lens 35 mm. Přiblížil a natočil jsem ji tak, aby deska s kapkami vyplnila pohled a vytvořila jednoduchou diagonální kompozici. Na přesné doladění výřezu je dobré si zapnout Show Safe Frame v menu viewportu. Zatím by měla naše scéna vypadat nějak takto:

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

Když kapky vody jsou jako transparentní objekt čitelné hlavně díky okolním předmětům a světlům, které odrážejí, musíme okolo nich vytvořit prostředí. Navrhuji nezdržovat se vytvářením nějaké kuchyně s raytracovanými poháry na poličce s 5000 faces. Úplně v pohodě bude fungovat i jednoduchá Geosphere s vhodnou panoramatickou mapou.

Jednu takovou tématickou jsem přiložil - pan-bazen.jpg (192kB) Vytvořte obyčejný Standard materiál, hoďte tam pan-bazen.jpg j jako Diffuse bitmap, Self-illumination na 100% a ještě tu ikonku modro-bílé šachovnicové kostičky, při čemž Show Map in Viewport.
Teraz Geosphere - je na vás, jak velká bude, určitě by ale měla "zabalit" celou scénu i s kamerou a měla by mít střed ve středu scény, v našem případě v X,Y,Z=0. Také je rozumné vytvářet ji v Top viewportu, daleko logičtěji se potom spravuje při otáčení. Aby se opravdu objevila v odrazech na kapkách, je třeba jí ještě otočit normály dovnitř. Nejelegantnější to bude přidáním modifikátoru Normal - tam najdete checkbox Flip Normals.

Možná vás napadne, že tento účel splní i obyčejná Enviroment map, mapovaná sféricky. Já používám raději kouli, vidím ji ve všech pohledech a rychleji se s ní manipuluje než s enviroment mapou, zobrazenou přes Viewport Background. Při nastavování světel pochopíme další výhody enviro sféry.

Jako keylight vytvořte Target Spot v top viewportu tak, aby svítil zprava na střed scény. Ve front viewportu ho posuňte nahoru. Pomocí hotkey F3 můžete kdykoliv rychle přepnout aktivní viewport do módu Smooth Shade a nazpět do Wireframe. Když dočasně vypnete pro enviro sféru Filp Normals, budete moci světlo vizuálně přizpůsobit zdrojům světla na panoramatické mapě. V našem případě je to světlík nad bazénem. U mě to vypadá asi takto:

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

Aby nám enviro sféra neblokovala světlo, v jejím Object Properties vypněte Receive Shadows i Cast Shadows. Když ji nechceme vidět v pozadí, ale jen v odrazech a refrakci, vypneme i Visible to Camera.

S materiálem podkladu se nebudeme zabývat. Když chcete, můžete si stáhnout materials.zip(643kB), který obsahuje matlib a textury na ten plech, který jsem si tam dal já.

Pojďme ale na materiál kapek. Je to Raytrace materiál, který se mi jevil v renderingu rychlejší jako Standard s Raytrace mapami pro Reflection a Refraction. Kromě toho poskytuje velké množství parametrů pro speciální efekty, jako například Fog či Translucency. Jdeme simulovat kapky vody, při čemž vlastně čistou vodu. (Hotový materiál "voda kapky" najdete v materiálové knihovně v materials.zip)

Raytrace Basic Parameters
Shading doporučuji Anisotropic pro jeho brilantní specular highlights.
Ambient a Diffuse colors dáme černé, tak či tak by nám vysoká transparence a reflexe nepustily žádnou difúzní barvu.
Specular Color na čistou bílou a Specular Level na extrémních 300 zaručí kapkám jagavé highlights za jakýchkoliv světelných podmínek.
Glossiness může být nastavená na takových 75-80, i když ve skutečnosti by to bylo jistě více. Je to proto, aby se odlesky i na těch nejmenších kapkách neztratily v antialiasingu.
Anisotropický efekt při vodě nechceme, takže Anisotropy = 0.
Když vytváříme transparentní matroš, zapněte ješte 2-Sided.
Index of Refraction bude mít pro vodu hodnotu 1.333, že...

Extended Parameters
Tu jen přepneme na spodku rollout-u Reflections Type na Additive a Gain vypálíme na maximálních 1.0. To způsobí nerealistické ale efektní aditívní smíšení reflexí s transparencí. Celý materiál tak bude žářivější.

Maps
Reflection map bude Falloff. Přednastaveným typům ubývání je Perpendicular/Parallel a směr ubývání je Viewing Direction. Černá barva nahoře a bílá dole (Front:Side) způsobují, že materiál bude 0%-ne reflexní ve střede a 100%-ne na okrajích kapky. To je skoro přesně to, co potřebujeme. Přestože v reálu neubývá míra odrazivosti směrem k okrajům lineárně, jako v případě Perpendicular/Parallel, ale logaritmicky. Takže přepneme Falloff Type na Fresnel, a ve Fresnel Parameters vypneme Override Material IOR.
Transparency map bude přesně stejná Fresnel Falloff mapa jako Reflection, třebaže bude mít vyměněné barvy pro Front:Side. T.j. bílá nahoře a černá dole. Napravo mezi Front:Side barvami, resp. mapami, je na to jedna šikovná ikona - Swap Colors/Maps (profíci odpustí ;O)
Pro větší nastavení kapek jsem namísto černé použil v transparenci i v reflexi šedou. Viz přiložený materiál library.
(Ještě taková malá poznámka ke kopírování map mezi slotmi metodou Drag&Drop: po pracném nastavení falloff mapy pro reflection ji můžete samozřejmě zkopírovat do slotu pro transparency map a potom jen swapnout front:side colors, ale pozor na metodu kopírování mapy, mám takový dojem, že max vám jako přednastavenou možnost nabídne Instance. V takovém případě by se přehodily front:side barvy i v reflection. Použijte metodu Copy na vytvoření nezávislé kopie.)
Hotový materiál aplikujeme na PArray a kapky jsou připravené.

Když si pustíte testovací render, uvidíte, že tomu ještě něco chybí. Jsou to caustics, které vytvářejí louče světla zaostřené refrakcí při přechodu přes čočkovitý transparentní objekt. Scanline renderer 3ds max tento efekt standardně nepodporuje, ale to nebude problém, ukážeme si jako to oklamat a vytvořit faked caustics.
(mimochodem, i při těchto několika kapkách vody by bylo na výpočet caustics třeba milióny fotonů, zkusil jsem si to přes mental ray a pochopil jsem, že "tudy cesta nevede" ...)

Vyselektujte Spot light, který jsme na začátku vytvořili a zdvihněte mu Multiplier na nějakých 1.3, zapněte Raytraced shadows, a případně upravte definitívně směr světla a tvar kuželu (Hotspot a Falloff). Na rychlé a přesné nasměrování světla bez zdĺouhavých testovacích renderů nabídka max "Spotlight view" - pravý klik na název zvoleného viewportu a ze sub-menu Views vyberte Spot01. Vpravo dolu potom máte k dispozici speciální ikony na manipulaci se světlem.
Pomocí příkazu Clone v menu Edit vytvořte nezávislou Copy. Nazveme ji Spot Caustics. V Shadow Parameters přepněte typ shadows na Shadow Map a Color nastavte na bílou, případně světle modrou. Když vypnete Light Affects Shadow Color, max bude místo stínů "vrhat světlo". Vedle sample slotu na barvu stínu je možné ještě zvýšit hustotu stínu - dejme Density na 2.2. No a aby nám toto světlo zbytečně nepřisvěcovalo objekty, stáhneme mu intenzitu světla přes Multiplier na zanedbatelných 0.01.Když chceme rozostřené caustics, které dopadají kousek dále než vrhnuté stíny, v Shadow Map Parameters nastavíme Biasna 2.0 (takže se nám trochu odtrhnou od objektu), Size na 600 a Sample Range na 6 (to by je mělo tak akorát rozhostřit), ještě zapněte Absolute Map Bias.


Na celkové dochucení atmosféry jsem ještě dozadu za scénu vytvořil jedno syté modré Omni světlo bez stínů, a s vypnutým Diffuse, při čemž "Specular only". Tip: ikona Place Highlight, pod rozrolovací ikonou Align.
A vůbec, takových Specular only Omni světel můžete pro vytvoření bohatých highlights na kapkách napráskat kolem-dokola, jako koření do guláše, čím víc, tím lépe.

Celkem na závěr možná budete chtít zvýšit počet pólů pro kapky. Je to v Metaparticle Parameters takzvaná Evaluation Coarseness, zvlášť a zpravidla více pro Viewport, a jemnější pro samotný render. Hrajte si s tím opatrně, případně před tím sejvujte, abyste mohli maxovo trápení rázně ukončit milosrdným End Process. Já jsem použil pro render 0.5.
Rendering time byl u mě něco pod 2 minuty (Dual 1GHz Pentium III).

Když byste potřebovali ručně editovat jednotlivé kapky, anebo všechny pro zvýšení realismu,  můžeme je  v ose z zploštit pomocí Vol.Select a X-form, použijte Snapshot z menu Tools, který částice zkonvertuje na Mesh.

Happy rendering ;O)

Tématické zařazení:

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: