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
Přehled nových funkcí v Blenderu - část 2.
7. srpna 2007, 07.00 | Dnešní článek se bude zabývat dalšími novinkami v Blenderu. Z oblasti materiálů se podíváme na problematiku SSS - SubSurface Scattering, dále si vysvětlíme, co jsou to Softbodies a k čemu všemu je lze využít.
SSS
Budeme používat náš škaredý obličej z minula, samozřejmě – doufám, že nemusím opakovat – že bude jedině dobře, když si následující postupy budete zkoušet především na svých modelech:
Pokud ho nemáte z minula - download zde (pravé tlačítko myši -> uložit odkaz jako)
A o čem vlastně SSS je? Je to nová volba ve vykreslování materiálů, umožňující prozařování pod povrch materiálu. Obdobný jev lze vidět i u materiálů reálného světa, jako například vosku, lidské kůže nebo minerálu nefritu. Jaký efekt prozařování vyvolává, pochopíte nejlépe z obrázku:
Pojďme si tedy demonstrovat, čeho je SSS schopno.
Dal jsem si za úkol vytvořit materiál lidské kůže. Aby byl náš škaredý obličej aspoň trochu různorodý, unwrapoval jsem model a nakreslil colormapu a bumpmapu.
Nebudu se rozepisovat o tom, jak jsem unwrapoval - šlo o LSCM metodu, navíc unwrap je tak jednoduchý, že místa jednotlivých švů jsou zřetelně vidět.
Takto vypadal model po aplikování textur:
A teď k subsurface scatteringu - SSS panel se nachází v material buttons:
Takto jsem nastavil materiál pro kůži:
Určitě vás bude zajímat význam jednotlivých tlačítek:
Subsurface Scattering aktivuje toto nastavení.
Scale znamená zvětšení. To znamená, že čím vyšší číslo nastavíte, tím více bude objekt působit dojmem, že je menší a víc přiblížený.
Uveďme si jako příklad fotku voskové figurky. Na jedné fotce je řekněme 50 cm velká figurka, na druhé figurka ne vyšší než 5 cm.
Obě fotky mají totožné proporce, dokonce i figurky jsou zabrány stejným způsobem, nicméně rozdíl uvidíte v tom,
že prozařování se více projeví na menší figurce (přeneseně by se dalo říct, že parametr scale je u ní nastaven na mnohem vyšší číslo).
Pro doplnění dodám, že pokud je scale na 1,000, znamená to, že 1 Blender jednotka = 1 milimetr.
Takže pokud nastavíte scale na 2,000, 1 Blender jednotka = 0,5 milimetru atp.
Pro představu, co udělá nastavení příliš vysokého čísla u scale:
Radius R,G a B - tímto parametrem určíte, která z barevných složek spektra (červená, zelená a modrá)
bude prozářena pod materiálem. Tento parametr je úzce svázán s nastavením barvy materiálu, tedy pokud například není
v materiálu nijak zastoupena modrá složka, posuvník Radius B nijak neovlivní výsledek.
IOR - index refrakce, tento pojem se používá především v oblasti raytracových světel a určuje míru lámání světla
na povrchu průhledných materiálů (sklo, voda, diamant, ... každý z těchto materiálů má IOR nastavení různé),
zde jeho změna ovlivňuje viditelnost SSS efektu, podle blender3d.org postačí pro většinu materiálů 1.3.
Error - určuje, s jakou přesností se render vyhne chybám. Čím menší číslo, tím pomalejší, ale kvalitnější render.
Roletkové menu nabízí několik přednastavených materiálů, jako je například brambora, mléko, krém atp.
Pole pro barevný vzorek umožňuje nabrat barvu - barvu difúzní reflektace, což ovlivňuje nejen barvu materiálu, ale i barvu samotného prozařování
Tex určuje míru rozostření textury při aplikaci efektu
Front určuje míru prozařování přední strany objektu
Back určuje míru prozařování zadní strany objektu
A tedy s nastavením, které je patrné na předposledním obrázku jsem dosáhl tohoto:
Další pokus o vlastní nastavení materiálu - a sice nefritu. Je to lesklý zelený minerál, prostupností světla lehce podobný vosku. Je třeba si uvědomit, jaké předpoklady tento materiál má. Je to rozhodně lepší, než střílet naslepo. V prvé řadě, materiál má středně tmavou zelenou barvu, takže pokud byste u rádia zelené nastavili příliš vysoké číslo (řekněme vyšší než 3), nebyla by pořádně viditelná geometrie, jedině že byste stáhli IOR. Rádius červené a modré v podstatě nijak neovlivňuje celkový výsledek, protože hlavní barevnou složkou materiálu je zelená, ovšem stále platí, že pokud tato nastavení poženete příliš vysoko, výsledný materiál může vypadat přinejmenším šíleně - samozřejmě v závislosti na barvě materiálu.
Uvádím i kompletní nastavení tohoto materiálu:
A tady je výsledek:
S tímto nastavením jsem se pokusil o vosk:
Musím uznat, že mi docela dlouho trvalo, než jsem byl s tímto materiálem spokojený. Nakonec to spočívalo v nastavení vyššího čísla u scale, protože jsem nastavoval hodně světlou barvu, a tudíž zvětšování rádia jednotlivých barev vedlo nanejvýš k šíleným materiálům. Výsledek:
Jen pro představu ukážu jeden z materiálů, kterého se mi podařilo dosáhnout při pokusu o vosk:
Ovšem vzhledem k tomu, že v Blenderu se dá vytvořit snad všechno možné i nemožné, určitě i takovýto materiál by někde našel uplatnění :).
Aby byl přehled kompletní, ještě uvedu pár drobných chyb, o kterých je dobré vědět.
- pokud byste se chtěli podívat na zadní stranu SSS materiálu, jediný způsob, jak to udělat, je použít zrcadlo - a právě v tomto momentě zjistíte, že SSS se počítá jenom na těch facech, které vidí kamera. Zbytek samozřejmě také prochází určitými změnami, jenomže při použití zrcadla už jde vidět, že to není žádná sláva. Toto šetření má ovšem jeden pádný důvod - snížení náročnosti na paměť počítače, SSS tedy vychází z polohy objektu vůči kameře a světlu. Lépe to pochopíte z obrázku (koule nahoře je čisté SSS, zrcadlo je čistě raytracingový odraz a koule vlevo je kombinace obojího):
-část prozařování může chybět, pokud se 2 objekty prolínají, protože SSS se nepočítá z faců mezi přední a zadní stranou - opět kvůli nárokům na paměť
-normály musí ukazovat správným směrem (tedy ke kameře) - nejsou otočeny automaticky kvůli správnému výpočtu prosvítání zadní stranou
-iregulární stíny (novinka u spot světel) nejsou správně vrhány na zadní stranu SSS materiálů
-panoramatické rendery a rendery s širokoúhlým nastavením čoček údajně nepodávají dobré výsledky
A to by bylo k SSS asi tak vše :)
Softbodies
A nyní se dostáváme k Softbodies.
Softbodies jsou animačním nástrojem, umožňujícím simulaci například látky nebo "želatinové" hmoty na základě fyzikálních zákonů. Každý mesh v Blenderu může mít aplikován softbody efekt. K ovládání této techniky se používají dvě metody - goal (definování rozsahu působnosti softbody efektu za pomoci vertexové skupiny) a springs (pružnost):
Softbody GOAL v podstatě uzamkne pozice jednotlivých vertexů, které se poté chovají jako normální animovatelný objekt. K definování těchto vertexů se používají vertex groups. Slouží také jako omezovač efektu, aby se objekt nedeformoval až příliš. Ukážeme si vše na příkladu:
Nejdřív přidejte do scény mřížku (grid) s rozlišením 8 x 8 vertexů.
Poté si označte krajní vertexy. Ty budou právě ty nepohyblivé.
Nyní je přidejte do vertexové skupiny (New->Assign), třeba s názvem neohebne:
Aktivujte (se stále vybranou mřížkou v objekt módu) softbody efekt v této záložce:
Tlačítkem Soft Body a tlačítkem GOAL použití vertexové skupiny (v roletkovém menu vyberte skupinu neohebné):
Tímto jsme nyní nastavili softbody efekt pro všechny vertexy mimo skupinu neohebné. Aby byl efekt patrný a koukatelný, přidejte modifikátor subsurf (edit buttons -> add modifier -> subsurf) a klikněte na SetSmooth tlačítko k vyhlazení ploch. Abychom se ještě dozvěděli, co jsme to vlastně právě vytvořili, bude nutné objekt rozhýbat. Na první a dvacátý pátý snímek přidejte IPO klíč Loc (na obou snímcích stiskněte při vybrané mřížce I->Loc), totéž udělejte i na dvanáctém snímku, ale mřížku přesuňte o něco nahoru.
Nyní při náhledu animace ALT+A uvidíte gumové prohýbání středu objektu, který vyletí nahoru a pak zase dolů.
Podle libosti můžete upravit vertexovou skupinu weight paint modem (CTRL+TAB - ovládací panel weight paintu se nachází v edit buttons, ale aktivuje se až poté, co vstoupíte do weight paint modu) a změnit tím rozsah působnosti efektu:
A takto bude vypadat animace ve výsledku:
Za chvíli si vysvětlíme jednotlivá nastavení softbody efektu, nyní si ale ještě vysvětlíme springs. Tato metoda způsobuje, že se hrany (edges) snaží udržet původní vzdálenosti mezi sebou (představte si krychli s tělesovou úhlopříčkou, která omezuje "želatinový" pohyb). Tato metoda se automaticky použije, když zapnete volbu Use Edges.
Pojďme si ještě připomenout softbody panel, abychom se v něm orientovali a mohli si vysvětlit jednotlivá nastavení:
Enable softbody je snad jasné, jde o aktivování tohoto efektu :)
Friction - tření, čím vyšší číslo, tím méně bude objekt působit dojmem želatiny
Grav - určuje sílu gravitace ve směru dolů :)
Mass - dá se říct hmotnost objektu. Čím vyšší číslo, tím budou vertexy víc taženy dolů.
Speed - určuje rychlost efektu, tedy čím vyšší číslo, tím rychleji se budou vertexy vracet do původní polohy
Use goal - aktivuje goal metodu s možností výběru vertexové skupiny
G Stiff - určuje pevnost vazby mezi vertexy ve skupině a mimo ni. Vyšší číslo = pevnější vazba
G Min/G Max - tohoto nastavení lze dobře využít, pokud máte ve vertexové skupině různé hodnoty (díky weight paintu).
G Min udává hodnotu, všechny vertexy s váhou nižší než tato jsou automaticky nastaveny na ni.
G Max udává hodnotu, všechny vertexy s váhou nad tuto hodnotu jsou nastaveny na ni.
G Damp - udává tření vertexů přiřazených do skupiny goal. Vyšší číslo = vyšší tření
Use Edges - aktivuje používání hran v meshi jako omezovače pružnosti (doporučuju zapnout, efekt vypadá realističtěji)
Stiff Quads - zapnutí této volby znamená, že i mezi čtyřhrannými facy se budou počítat úhlopříčky, facy tedy nebudou kolidovat
tak drasticky (tento efekt je patrný při komplexnější deformaci - například spadnutí látky na objekt atd.)
E Stiff - síla pružnosti hran. Vyšší číslo = méně elastický materiál
E Damp - vyšší hodnoty tlumí E Stiff nastavení
Aero - způsobuje, že se objekt pomalu snáší k zemi. Vyšší číslo = pomalejší let
Rigidity - díky tomuto parametru je objekt soudržnější a neprochází ostatními softbody objekty
CEdg - pokud aktivujete tuto možnost, znamená to, že mezi sebou budou vzájemně kolidovat i hrany v meshi,
dodávám pro úplnost, že je to náročnější na výpočet.
CFac - v podstatě to samé, jenom místo hran kolidují facy.
Tuto volbu je možné aktivovat i když máte zapnuto CEdg - výsledek vypadá realističtěji, nicméně celé je to ještě o krapet náročnější
(musíte si to prostě vyzkoušet - síla každého stroje je individuální :))
Pokud jste s animací spokojení, můžete ji zapéct (ano – to je zcela běžný termín, a ne – já jsem si ho nevymyslel :) za pomoci aktivace Bake Settings záložky:
Start/End - určuje rozsah snímků, v kterém se bude animace počítat
Interval - dá se říct, že určuje kvalitu animace, udává totiž, které snímky se budou počítat (v našem případě každý desátý).
Animace mezi nimi se dopočítá automaticky.
Dovoluji si podotknout, že nastavení vyššího čísla než 1 při finálním výpočtu není dobré, výsledek potom opravdu není ani z poloviny tak dobrý
jako při nezapečeném náhledu.
Local - určuje, zda budou použity místní či globální souřadnice.
Upřímně, nedošel jsem na to, k čemu tohle tlačítko slouží :)
No a samozřejmě, BAKE zapeče animaci
Samozřejmostí jsou kolize s jinými objekty (podobně jako u částic), u kolizního objektu stačí zatrhnout volbu Deflection v Anim buttons (F7):
Damping - určuje velikost tření při kolizi.
Pokud nastavíte 0, je možné, že softbody objekt zavadí o deflektor, ale propadne jím dolů
Inner a Outer - určují sféru kolem každého facu, která bude odpuzovat vertexy softbody objektu
(buď vzdálenost po normále -outer- nebo proti ní, do centra objektu -inner-)
Nachystal jsem si následující jednoduchou scénu:
Plane nahoře má aktivovaný modifikátor subsurf, je ale zároveň docela hodně zahuštěný (v edit módu W->Subdivide, aspoň 4x).Softbody simulace látky je tím přesnější (ale náročnější na výpočet), čím hustější je síť meshe. U subsurfované krychle dole jsem zapnul deflection a ponechal beze změn. U planu nahoře jsem v softbody panelu pouze vypnul volbu goal. Pak jsem už jen stiskem ALT+A sledoval animaci:
Pro odzkoušení želatinového odrazu jsem vytvořil následující jednoduchou scénu:
Upravený plane je opět nastaven jako deflektor (opět bez jakýchkoliv změn defaultního nastavení) a kulička je icosphere se subdivizí 2 a aktivovaným subsurfem rovněž na levelu 2 s použitým SetSmooth. Po aktivaci softbodies jsem nastavil faktor Rigidity na 0.5 a vypnul goal. Poté jsem již jen spustil animaci:
Kulička se samozřejmě poté dál odrážela, ale to už si vyzkoušejte sami. Nyní se ještě podíváme na další možnosti kolize objektu o sebe sama. Panel se nachází v Anim buttons pod záložkou soft body collision:
Použití zapnete tlačítkem Self collision.
Tento druh kolize se počítá na základě předpokladu, že jednotlivé vertexy objektu, s kterými softbody koliduje, jsou obklopeny "kluzkou koulí"
(viskoelastická koule, přesně řečeno).
Velikost této koule můžete nastavit parametrem Ball Size.
Popisky jednotlivých nastavení mluví za vše - jsou na nich uvedeny rovnice, podle kterých se bude volit velikost oné viskoelastické koule.
(Man Av Min Max a AvMiMa)
B-Stiff - určuje opět pružnost, ale v rámci kolidování o sebe sama.
B Damp - určuje míru "mazlavosti" koule.
Error limit - podle tohoto parametru nastavujete kvalitu animace.
Nižší číslo = větší kvalita, ale delší čas na výpočet
O - výpočet proběhne podle metod ze starší verze.
Trochu pomalejší, ale v některých případech se to osvědčilo.
Fuzzy - ovlivňuje "načechranost" koule, vyšší čísla urychlují animaci,
ale nejsou spolehlivá a mohou být nestabilní
M - zapisuje do konzoly dobu výpočtu jednoho kroku, který se počítá během jednoho snímku.
MinS - nastavení minimálního počtu vypočítaných kroků během jednoho snímku.
Pokud máte rychle se pohybující kolizní objekt, toto číslo zvyšte.
Nula vypíná nastavení.
MaxS - určuje maximální počet vypočítaných kroků během jednoho snímku.
Kroky se totiž defaultně vypočítávají z Error limit.
Čím menší error limit, tím více kroků.
Vyšší čísla urychlí, ale možná někdy znekvalitní animaci.
Nula vypíná nastavení.
Choke - "zklidňuje" kolizi a nedovoluje ostatním vertexům proniknout skrz své facy
Tak a již poslední část tohoto rozsáhlého tématu: silová pole.
Silovým polem se většinou stává empty objekt. Tato volba se nastavuje v anim buttons v roletkovém menu Force field. V Blenderu jsou různé druhy silových polí:
Spherical - silové pole ve tvaru koule. Buď odpuzuje nebo přitahuje body v softbody objektu ležící v jeho "sféře vlivu".
Wind - jednosměrné silové pole simulující vítr.
Vortex - vytvoří vír, všechny softbody objekty se začnou se zrychlením roztáčet kolem osy silového pole a poletí buď pryč od něj nebo k němu
(v závislosti na nastavení).
Curve guide - vedoucí křivka pro statické částice, její použití je popsáno
zde
Nyní k nastavení hodnot:
Strenght - jak jinak než síla pole
Falloff - tvrdost přechodu mezi stoprocentní a nulaprocentní působností
Use MaxDist zapíná použití MaxDist - tedy vzdálenosti od centra objektu, ve které bude efekt patrný
A na závěr si tedy ještě ukážeme případné použití silového pole wind. Nachystal jsem si tuto jednoduchou scénu, plane má nastavenou horní řadu vertexů ve vertexové skupině Group a je 4x subdividovaný, s aktivovaným subsurf modifikátorem:
Zde je nastavení planu:
A tady empty objektu:
Aby vítr vypadal věrohodně, v IPO editoru jsem vytvořil takovouto drobnou fluktuaci. Stačí kliknout na parametr FStrenght a CTRL+LMB přidávat kontrolní body:
A takto tedy vypadal výsledek:
Tak, vypadá to, že jsme se konečně prokousali k závěru :). Díky za pozornost, doufám opět, že jste tutoriál shledali přínosným, na shledanou příště.
Tématické zařazení:
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
11. května 2014
-
23. května 2014
Epson na konferenci Droidcon Berlin ukázal nové možnosti čekající na vývojáře OS Android
-
24. listopadu 2014
-
13. května 2014
Samsung NX3000: retro styl, špičkový výkon a snadná konektivita v jednom přístroji
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
15. prosince 2014
Konica Minolta pomůže živnostenským úřadům s digitalizací dokumentů
-
11. května 2014
-
26. listopadu 2014
Canon Junior Awards již posedmé ocení mladé fotografy v rámci Czech Press Photo
-
21. srpna 2014