Tutorial: Caustics aneb Viditelný lom světla - 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

Tutorial: Caustics aneb Viditelný lom světla

4. ledna 2007, 00.00 | V tomto tutoriálu si projdeme efekt lomu světla. Pro úspěšné dosažení výsledku budete potřebovat základní znalosti 3d studia max.

Pokud jste už zkoušeli vytvořit skleněný objekt a zkusili nastavit u obyčejného materiálu Standart jen nízkou hodnotu opacity, výsledek byl nejspíš hodně slabý. Pokud jste použili materiál Raytrace, objekt už lámal světlo procházející sklem, ale stále tomu něco chybělo. Když ke správně vymodelovanému objektu a materiálu Raytrace přidáte ještě Caustics, render by mohl být velmi působivý.

Pro přesvědčivý výsledek musíme prozkoumat skutečný model - teoreticky i prakticky. Lom světla (anglicky refraction) je optický jev, ke kterému dochází, když paprsky světla procházejí dvěma různě hustými prostředími. Je to způsobeno rozdílnými rychlostmi šíření světla v jiných hustotách. V praxi se s tímto úkazem setkáváme např. u brýlí, které díky lomu světla napravují oční vadu, nebo při dešti můžeme pozorovat duhu (světlo prochází kapkami a je rozkládáno na všechny barvy viditelného spektra). Index lomu je bezrozměrná fyzikální veličina, která popisuje šíření světla v látkách. Jestli si někdo myslí, že vzduch světlo neláme, asi ho překvapí číslo 1,0003, které vyjadřuje index lomu ve vzduchu. Sklo má index mezi 1,5 a 1,8 a např. diamant 2,41.

Světlo projde materiálem a "převezme" na sebe barvu materiálu (ve skutečnosti světlo samozřejmě nic nepřevezme - objekt nechá skrz sebe projít jen tu vlnovou délku světla, která odpovídá barvě materiálu). Toto světlo, pokud má dostatek energie, pokračuje ve své cestě, až narazí na nějaký další objekt, na kterém můžeme pozorovat vzniklý úkaz.

Modelování objektu

Nejspíš by bylo moc jednoduché vymodelovat obyčejnou skleněnou čočku (ti, kdo se v modelování cítí sebejistě a nepotřebují si procvičit modelování pomocí křivek, mohou použít čočku a přejít k samotnému vytváření efektu), takže si vymodelujeme skleničku, která bude vytvářet zajímavější lom světla. Pokud si netroufáte vytvořit sklenici přímo od ruky, můžete si sehnat něco jako blueprint nebo použít obrázek, který jsem našel já.

Nejjednodušší bude sklenici vytvořit pomocí Shape Line a pak otočit kolem vlastní osy. Nejprve v bočním viewportu vytvořte Plane, který bude mít stejný poměr stran jako náš podklad. Potom v Material editoru vybereme v řádku Diffuse color bitmapu se sklenicemi. Aplikujte na Plane a ještě aktivujte tlačítko Show Map in Viewport. Přesuňte se do pohledu Left a sekundárním tlačítkem myši (RMB-right mouse button) klikněte na nápis Left, zaškrtněte Smooth + Highlights (nebo jednoduše stiskněte F3). Možná bude pohodlnější pracovat bez mřížky, takže ještě zmáčkněte písmeno "g". V pohledu Top přesuňte plane do kladných hodnot po ose x (je to proto, aby se nám později neztrácela křivka představující obrys sklenice). K vytvoření křivky budeme potřebovat jen jeden viewport, takže použijte zkratku "alt+w" v aktivním bočním pohledu. Vytvořte line, která bude představovat obrys sklenice, ale tak, aby respektovala její tloušťku (pokud se vám při vytváření křivky ztrácí obraz, stiskněte klávesu "o"). Nemusíte si s křivkou hrát, aby byla detailní a zaoblená – to dotvoříme v dalším kroku – důležitější je, aby měla požadovaný počet bodů.

Teď po jednom vyberte krajní vertexy křivky a nastavte jim v ose y stejnou hodnotu (obdélníček dole). Potom nastavte stejnou hodnotu do kolonky osy z pro dva dolní vertexy (pokud se vám nedaří srovnat vertexy do stejných hodnot, připomínám, že je musíte vybírat jednotlivě). Vyberte vertexy, které chcete zaoblit a LMB>Smooth. U vrcholů, které nějak špatně zkroutily své okolí, místo Smooth nastavte Bezier a pohrajte si s ovládacími body. Až budete s obrysem spokojeni, aplikujte modifikátor Lathe. Nejspíš hned nevznikne požadovaný objekt – je nutno nastavit správně osu. Pokud se chcete vyhnout problémům s nastavováním osy, vymažte modifikátor a běžte do karty Hierarchy a stlačte Affect Pivot Only. Zaktivujte Angle Snap Toogle (klávesa "s") a nastavte mu přichytávání (pravý klik na tlačítko Angle Snap Toogle) k Pivot a Vertex . Přesuňte pivot na jeden z krajních vertexů. Po přichycení pivota k vertexu můžete Angle Snap Toogle deaktivovat. Teď se znovu vraťte k modifikátorům a přidejte Lathe - osa by se měla přichytit k pivotu (pokud chcete hladší sklenici, zvětšete hodnotu Segments) . Sklenice už vypadá lépe, ale je možné, že má otočené normály stěn. To napraví modifikátor Normal.

Nakonec se podívejte, jestli střed sklenice (jak dole, tak nahoře) není nějak zprohýbán nebo špatně vystínován na renderu. Pokud ano, je to proto, že se nám při rotaci křivky nespojily krajové body. Stačí překonvertovat sklenici na Editable Poly a vybrat střední vertexy nahoře - v pohledu top vyberte střed a pak v bočním pohledu odečtěte nadbytečné vertexy, se stisknutým alt (v části Selection se vám zobrazí, kolik vertexů je vybráno – pokud jen jeden, zobrazí se číslo vybraného vertexu)- a kliknout na tlačítko Collapse v části Edit Geometry a to samé dole.

Materiál

Materiál pro sklenici použijeme Raytrace. Ve volném slotu klikněte na tlačítko Standart a změňte na Raytrace. Transparenci nastavte na bílou nebo hodně světlou barvu (pokud byste chtěli ovlivnit barvu světla, které projde objektem, nestačí nastavit jen barvu Diffuse, ale požadovanou barvu musíte nastavit právě sem). Reflect může zatím zůstat černé nebo mu nastavte nějaký tmavý odstín. Do řádku Bump přidejte Noise (lom světla by byl bez Noise moc dokonalý) a nastavte do kolonky v řádku Bump hodnotu 3 (to číslo znamená, jak hodně bude Noise ovlivňovat lom). Ještě nezapomeňte zvýšit hodnotu Specular level. Přiřaďte materiál ke skleničce. Pokud vyrenderujete proti nějakému pozadí, projeví se lom světla (ta černá místa na sklenici jsou způsobena černým okolím).

Světlo

Pokud chceme vidět efekt lomu světla, potřebujeme podložku. Stačit bude i obyčejný šedý Plane, ale výsledek bude méně zajímavý (a navíc by se nám vůbec neprotáhlo CPU:). Vytvořte tedy nějaký podklad a přidejte mu materiál. Já jsem použil materiál s Diffuse mapou Planet. Jako světlo použijeme typ mr Area Spot - umístěte ho pod úhlem asi 45°.

Teď vyselektujte světlo i sklenici a RMB-Properties. V kartě mental ray zaškrtněte Generate Caustics.

Nastavení renderu

V Render Scene Dialog (F10) v kartě Common vyberte dole po rozkliknutí Assign Renderer mental ray Renderer. Potom v kartě Indirect Illumination zaškrtněte Enable v části Caustics. Kolonky, které nás budou zajímat, jsou: Average Caustics Photons per Light a Global Energy Multiplier. Average Caustics Photons per Light určuje, kolik vyzáří světla fotonů (upravuje hodnotu pro všechna světla ve scéně), a Global Energy Multiplier říká, jakou energii ponesou vyzářené fotony.

Pro začátek nechte hodnotu Average Caustics Photons per Light kolem 10 000 (doporučuji přidávat postupně a ne hned nastavit 400 000 fotonů - čím míň, tím horší výsledek, ale zase rychlejší výpočet) a Global Energy Multiplier zvyšte asi na 1 000. Každý foton během své cesty ztrácí energii, tento jev definuje hodnota Decay, která říká, jak rychle se bude energie ztrácet. Nejspíš to zní divně, protože nás přece učili, že energie se neztrácí - něco pravdy na tom asi bude - fotony narazí do objektů, předají jim část energie (zahřejí je tím) a odrazí se úhlem odrazu, který odpovídá úhlu dopadu.

Ještě než zkusíte vyrenderovat, nastavte si nižší rozlišení. Výsledek není moc působivý a možná i špatně viditelný – je potřeba zvýšit obě zmiňované hodnoty. Ze začátku je lepší nechat počet fotonů nižší a zabývat se energií a až budete s jasem dopadajících částic spokojeni, zvyšte jejich celkový počet - tento způsob šetří čas.

Závěrečná úprava

Kdybyste chtěli umístit skleničku do nějaké scény, určitě by bylo působivější, kdyby se pozadí za sklenicí rozmazalo. Vytvořte Target kameru a v panelu Modify v části Multipass Efect zaškrtněte Enable. Teď bude Camera01.Target důležitým bodem scény, protože jeho okolí bude nerozmazané. Pokud chcete, aby se rozmazalo pozadí sklenice, musíte Camera01.Target umístit blízko sklenice (ve všech osách), pokud chcete, aby se rozmazala sklenice, umístěte Camera01.Target někam za sklenici. Depth of field pracuje "krásně jednoduše" - složí výsledný obraz z několika obrázků (render bude nejspíš dlouhý). Při každém počítání obrázku pohne kamerou kousek vedle a podle toho, jak jsou objekty vzdálené od Target bodu se buď rozmažou, nebo zůstanou ostré. Čím blíž bude Camera01.Target ke kameře, tím rozmazanější budou objekty okolo. Ale protože používáme Mental ray renderer, nastavte ještě u kamery v Multipass Efect Depth of field (mental ray) .

Nakonec nastavte požadované rozlišení a spusťte render.

Finální render:

Scéna s vodou, nebo se sklem nebude bez Caustics nikdy dokonalá. Pokud tam Caustics použijete, výtvor na pozorovatele zapůsobí, pokud ne, bude tomu něco chybět.

Nakonec ještě přikládám ukázky pohledu na hladinu a na dno bazénu.

Doufám, že Vás tento tutoriál snadno provedl problematikou lomu světla, že se vám výsledek vydařil a hlavně že jste se něco nového naučili.

Tématické zařazení:

 » Rubriky  » VSE  

 » Rubriky  » 3dscena  

 » Rubriky  » Go verze  

 » Rubriky  » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: