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 (13. část): Částice (3/3)
14. října 2008, 00.00 | V předchozích dvou dílech jsme dopodrobna rozebrali orientaci v novém částicovém systému a veškeré možnosti částic typu Emitter a Reactor. Poslední velkou kapitolou tohoto nového systému jsou částice typu Hair, které slouží - jak už název napovídá - k simulaci vlasů, srsti, trávy atp. A právě particlům typu Hair se v dnešním díle budeme zabývat - tím uzavřeme velkou kapitolu o částicích v Blenderu.
Významným impulsem pro vylepšení statických částic byl opět projekt Big Buck Bunny, který nastavil laťku opravdu vysoko - koneckonců o tom, jak se vývojářům podařilo vylepšit statické částice se ve výsledném videu můžete přesvědčit sami. Osobně si myslím, že Big Buck Bunny v lecčem dosáhl kvality na úrovni Pixar Studios - a významný podíl na tom mají právě statické částice, resp. částice typu Hair.
Přepis kódu přinesl významné urychlení početních operací, Blender se nyní snaží při výpočtech šetřit paměť, kde to jen jde - zejména kvůli tomu, že nyní je možné pracovat s mnohnásobně větším počtem částic. Informace o částicích nejsou uloženy jako informace o polygonech, ale jako informace o klíčových bodech s tím, že na polygony se překonvertují až při výpočtu. Particly se nyní také mohou nastavit, aby se počítaly od předních po ty zadní za pomoci Strand primitiva, z čehož vyplývá další zefektivnění práce a přesnější výpočet průhlednosti - na okrajích částic nevznikají "zuby". Níže ve článku se dostaneme k tomuto i dalším nastavením podrobněji. Pojďme se podívat na samotný Particle System panel, při nastavení Hair částic:
Jak vidno, většina tlačítek je stejná jako ta, která jsme si již popsali v prvním díle o částicích. Přece jen zde jsou ale dvě odlišnosti:
- Segments - určuje počet segmentů na křivce, kterou je určena každá částice, více segmentů = hladší křivka (vhodné zejména pro částice s větší délkou)
- Set Editable - jedna z "nejvychytanějších" možností kontroly nad Hair částicemi - lze s ní ohýbat, přesouvat, mazat či řezat jednotlivé částice, takže ve výsledném vzheldu nás ovlivňuje pouze naše vlastní fantazie
Nastavíme 4000 částic a nenulové hodnoty Normal, Rand a AccZ (Physics panel). Po vyrenderování se nám může objevit něco takového:
Pozn.: Normal má nastavenou zápornou hodnotu, AccZ kladnou. Ve scéně je boční světlo typu Spot a emitor je nastaven na zobrazení v rendereru
Nyní zatrhneme volbu Set Editable v Particle System panelu a na headeru 3D okna vybereme Particle mode (nebo stiskneme CTRL+SHIFT+TAB):
Obdobně jako můžeme v Edit módu vybírat jen body, hrany a plochy, můžeme přepínat mezi 3 různými select módy i v Particle módu. Poslouží nám k tomu tato 4 dobře známá tlačítka na headeru 3D okna:
Popis tlačítek zleva doprava:
- Path select - zobrazí částice jako křivky, nemůžeme vybírat jednotlivé částice; buď všechny, nebo žádnou
- Point select - zobrazí klíčové body na každé částici, možnosti výběru nejsou omezené
- Tip select - vybírat můžeme pouze koncové body částic
- Limit selection to visible - vybere pouze částice viditelné z aktuálního pohledu (tzn., že pokud jsou některé z částic "schované" za těmi, jež vybíráme, jednoduše nebudou zahrnuty do výběru - analogie se stejnojmenným nástrojem v Edit módu)
Pokud se nám po vstupu do Particle módu neobjeví okénko Particle Edit Properties, snadno jej vyvoláme stiskem klávesy N.
Je důležité vědět, že pokud se již rozhodneme particly takto editovat, nebudeme moci měnit většinu nastavení. To se netýká pouze panelů Visualization, Extras a Children. Pokud tedy částice upravíme a poté budeme chtít, řekněme, upravit počet segmentů, budeme změny muset zrušit tlačítkem Free Edit, které se objeví namísto Set Editable.
Pojďme se podívat na Particle Edit Properties blíže. V kolonce vlevo nahoře máme jméno objektu s částicovým systémem (jméno objektu můžeme změnit v Edit buttons stejně jako zde), vpravo od této kolonky se pak nachází roletkové menu, v němž můžeme vybrat částicový systém, který chceme upravit. Editace částic funguje na principu kreslení štětcem, přičemž - jak bylo zmíněno výše - k dispozici máme několik způsobů úprav; je to oněch 8 zelených tlačítek. U všech štětců (kromě None) můžeme ovlivnit parametry štětce:
- Size - velikost štětce
- Strength - síla, kterou tah ovlivní částice
- None - žádné úpravy
- Comb - posouvání
Snadná úprava pomocí Comb štětce
- Smooth - zarovnání podle okolních částic
- Weight - malování váhy pro Softbody simulaci (ano, i ta může ovlivnit částice; dostaneme se k ní později)
- Add - přidávání částic
- Interpolate - rozmnoží již existující částice (= budou stejně deformované)
- Step - volba s neznámým efektem
- Keys - určuje počet klíčových bodů na nově vytvořených particlech
- Length - úprava délky
- Grow - prodloužení
- Shrink - zkrácení
- Puff - úprava "nadýchání"
- Add - napřimování částic
- Sub - uhlazování částic
- Cut - řezání
Devastace všemi štětci
Pojďme si ještě připomenout okénko Particle Edit Properties a popsat zbývající nastavení:
- Keep Lengths - zachování délky částic, pokud není aktivováno, částice budou měnit délku i při operacích jako Comb atp.
- Keep Root - aktivováno zaručí, že kořeny transformovaných částic zůstanou na meshi
- Deflect Emitter - díky této volbě nebudou částice pronikat emitorem
- Dist - nastavení nejkratší povolené vzdálenosti mezi emitorem a částicí
- Steps - počet segmentů, z nichž bude částice složená ve 3D okně (větší číslo = kvalitnější zobrazení = vyšší nároky na výkon počítače)
- Show Time - zobrazí číselnou hodnotu u každého klíčového bodu (0.0 je na počátku, 100.0 je na konci; může VELMI zpomalit celé vykreslování ve 3D okně)
- Show Children - zobrazí částice-potomky v Particle módu
- Show and Hide - schovávání zobrazených či odkrývání schovaných částic (stejná pravidla jako v Edit módu)
- Rekey - nastaví vybraným částicím požadovaný počet klíčových bodů
- Subdivide - rozdělí částice, čímž vytvoří více klíčových bodů
- Delete - odstraní vybrané částice/klíčové body
- Remove Doubles - v rámci vybraných částic odstraní ty, které mají kořen ve stejném místě
- Pakliže jsme na mesh použili mirror modifikátor, musíme jej aplikovat
- Odstraníme půlku částic (z čelního pohledu; symetrická editace funguje pouze podél osy X)
- Vybereme všechny zbývající částice a v Particle menu vybereme volbu Mirror, díky níž se nám všechny částice zrcadlově převrátí
- Nyní stačí jen v tom samém menu zatrhnout možnost X-Axis Mirror Editing a můžeme upravovat. Všechny změny se zrcadlově projeví na obou stranách meshe
Symetricky editované částice
Visualization panel
V minulém díle jsme si slíbili, že popíšeme možnost Path na panelu Visualization, pojďme se jí tedy podívat na zub:
Levou část panelu již známe, budeme se tedy soustředit na pravou stranu:
- Steps - stejné jako v Particle Edit Properties
- Render - obdobné jako Steps, ovlivní však pouze kvalitu částic na renderu
- Abs Length - zapne omezování délky částic
- Length - určuje maximální délku částic (v Blender jednotkách)
- RLength - náhodná variace omezené délky
- B-Spline - místo kardinální interpolace je použita B-Splinovská (částice nebude tolik kostrbatá, ale nebude procházet všemi klíčovými body)
- Strand Render - použití strand primitiva (ono řazení výpočtu od předních po zadní, jak jsme si uvedli na začátku článku), po jeho aktivaci máme k dispozici další zjednodušující nastavení, k nimž se dostaneme níže
- Angle - mezní úhel pro rozdělení křivky na segmenty (vyšší číslo = kostrbatější výsledek)
- Adaptive render - alternativa k Strand Render volbě; rozdělí částici na segmenty podle nastavení, z čehož vyplývá kostrbatější vzhled, ale rychlejší výpočet
- Angle - mezní úhel pro rozdělení křivky na segmenty
- Pixel - počet pixelů, z nichž se bude skládat jeden segment
Child Particles
Občas vznikne potřeba vytvořit částicový systém, řekněme, o jednom milionu particlů. Pokud bychom takovou situaci chtěli řešit pomocí parametru Amount, nedostali bychom se přes číslovku 100 000. Jak z toho ven? Pomoc je snadná, poslouží nám Child Particles neboli (již několikrát zmiňované) částice-potomci. Princip je opět jednoduchý - každá částice systému se stane rodičem požadovaného počtu částic-potomků. Pokud tedy máme systém o 4000 částic a nastavíme 10 částic-potomků, výsledkem bude 40 000 částic. Takto se můžeme dopracovat až k jedné miliardě částic - za předpokladu, že takový počet PC zvládne. Pojďme se podívat na nastavení částic-potomků, panel Children se nachází v pravé části Particle buttons:
V prvé řadě vybereme z roletkového menu způsob distribuce potomků. Na výběr máme Faces (potomci se objeví v okolí rodičů na facech) a Particles (potomci se objeví v okolí rodičů, ale ne nutně na okolních facech; mohou být umístěny ve 3D prostoru zcela mimo mesh). Pro Faces máme některá specifická nastavení:
- VParents - počet virtuálních rodičů (v praxi se mi zvětšování tohoto čísla někdy projevilo úbytkem particlů na některých částech meshe, jindy byly výsledky zcela nepředpokládatelné)
- Use Seams - použití řezů; pokud v Edit módu nakreslíme švy a particly "učešeme", nebude přechod mezi těmito různě učesanými plynulý - pro názornost obrázky:
Šev
Bez Use Seams volby
S Use Seams
Pro Particles jsou to potom tyto:
- Rad - poloměr, v němž se budou potomci nacházet
- Round - zakulacenost potomků, pro názornost obrázky:
Round: 0.000
Round: 1.000
Ostatní nastavení jsou již shodná pro obě volby. Pojďme si ještě připomenout Children panel:
- Clump - sbíhavost potomků k rodičům (-1.0 = částice se budou sbíhat u kořene, 0 = částice se nijak sbíhat nebudou, 1.0 = částice se budou sbíhat u konečku)
- Shape - tvar sbíhavosti (-1.0 = částice se u konce rozbíhají více, 0 = částice se rozbíhají rovnoměrně, 1.0 = částice se rozbíhají více u kořene - tvar písmene U), pro představu opět obrázky:
Clump: -0.7, Shape: -0.4
Clump: -0.7, Shape: 0.6
Další nastavení v pravé části panelu, prozatím bez aktivovaného Kink/Branch:
- Rough1 - hrubost částic odvíjející se od jejich pozice, někdy může ve velké míře randomizovat pravidelné částice
- Size - násobící faktor (kupodivu větší číslo = menší viditelnost efektu)
- Rough2 - náhodná hrubost
- Size - násobící faktor (kupodivu větší číslo = menší viditelnost efektu)
- Threshold - relativní limit počtu částic, které náhodná hrubost nijak neovlivní
- RoughE - hrubost konečků
- Shape - tvar hrubosti (obdobné jako v levé části panelu)
- Curl - vytvoří "kudrnaté" částice
- Radial - vytvoří spirálu kolem rodičů
- Wave - zvlní potomky kolem rodičů
- Braid - vytvoří pletence kolem rodičů
U každého z těchto typů máme kontrolu nad podrobnějším nastavením:
- Roletkové menu vpravo - umožňuje vybrat osu, podle níž se deformace bude počítat
- Freq - frekvence posunu - např. u kudrlin - čím vyšší číslo, tím více kudrlin na jeden vlas
- Shape - poloha posunu na částici
- Amplitude - amplituda deformace
Simplification
Tento panel se nám objeví vedle panelu Vizualisation, pokud aktivujeme Strand render - Simplification panel obsahuje některá podrobnější nastavení právě Strand Render tlačítka:
Strand Render přesně řečeno odstraňuje částice-potomky, pokud se dostanou příliš daleko od kamery - jednak je výpočet rychlejší, jednak jsou tím vyřešeny problémy s antialiasingem částic tenčích než 1 pixel.
- Reference Size - pokud mesh zabírá na renderu v pixelech menší velikost, než tuto, pak začíná proces redukce
- Rate - rychlost zjednodušování; pokud máme hodnotu 1.0, poměr částice/pixel zůstává přibližně stejný, menší čísla redukují méně
- Transition - relativní počet částic, které se plynule zprůhlední (0.1 = 10% atp.)
- Viewport - aktivováno ovlivní i částice emitované z faců mimo výhled kamery
- Rate - obdobné jako výše; rychlost redukce částic s narůstající vzdáleností meshe od okraje renderu
Materiály částic
Většina materiálových nastavení se překvapivě nachází v Material buttons. Nás bude nejvíce zajímat panel dostupný po stisknutí tlačítka Strands. Novinkou oproti minulému částicovému systému je Surface Diffuse, kdy se (jinak opravdu nelehké) stínování částic řídí částečně podle stínování meshe => realističtější výsledek.
Dalšími parametry pak jsou:
- Dist - "vmíchá" barvu povrchové normály v bodě dopadu světla (u kořene částice) do barvy částice
- Use Blender Units - číselné informace se budou počítat v Blender jednotkách namísto pixelů
- Sta - šířka částice u kořene
- End - šířka částice u konečku
- Shape - tvar špičky - shodné s Shape v Children panelu, týká se ale jednotlivých částic
- Width Fade - šířka gradientu, který určuje postupné zprůhledňování na okrajích částic (0.0 = žádný gradient, 1.0 = plynulý gradient od okraje ke středu)
Particle instance modifikátor
Další drobnou novinkou je Particle Instance modifikátor. K čemupak může sloužit? Je to jednoduché - mesh, kterému nastavíme Particle Instance, bude zkopírován na každé částici cílového částicového systému:
Tedy nic nového pod Sluncem. Pojďme si v rychlosti představit nastavení:
- Kolonka Ob: - sem vepíšeme název objektu, na němž se nachází částicový systém
- PSYS - číslo částicového systému na cílovém objektu
- Normal - určí, jestli se bude objekt duplikovat na částice
- Children - určí, zda se budou objekty duplikovat i na částice-potomky
- Path - funguje pouze, pokud použijeme částice typu Hair (nebo Keyed s nastaveným Path ve Visualization panelu), způsobí, že se mesh natáhne po celé délce částice:
Krychle na částicích typu Hair bez zapnutého Path
Krychle na částicích typu Hair se zaplým Path
- Unborn - zobrazí mesh na ještě nevzniklých částicích
- Alive - zobrazí mesh na každé "žijící" částici
- Dead - zobrazí mesh na zaniklých částicích
Softbodies
Jak jsme si slíbili výše, stručně popíšeme práci se Softbodies a částicemi. Pokud má mesh částicový systém s particly typu Hair, jednotlivé částice může ovlivňovat Softbodies fyzika. Aby se Softbodies vůbec projevovaly, musíme je nejdříve aktivovat - na Softbodies panelu vybereme v roletkovém menu částicový systém, na nějž chceme Softbodies aplikovat a poté vše nastavíme podle vlastní potřeby (v případě neznalostí odkazuji na jeden ze starších článků o Softbodies). Pokud budeme mít mesh na jednom místě a budeme jej chtít přesunout, Softbodies fyzika se projeví i při této operaci - proto ALT+A nechme spočítat kousek animace, ale po pár snímcích výpočet zrušme klávesou ESC. Poté uvolníme z cache informace tlačítkem Free Cache na Collision panelu. Pokud nyní budeme chtít animaci spočítat, stačí stisknout ALT+A a vše by se mělo korektně počítat z počátečního snímku.
Kolize
Při prohlížení článků zde na 3D scéně, resp. na Grafice jsem nenašel nikde zmínku o kolizích, které jsou ale v Blenderu již delší dobu (konkrétně od verze 2.34), a proto si o nich něco řekneme.
Byla by hloupost, kdyby tak kvalitní částicový systém nebyl schopný počítat kolize s ostatními objekty. Kolizní objekty lze rozřadit do dvou větších celků - silová pole a deflektory. Deflektorem je objekt, od nějž se částice odráží, ulpívají na něm atp. Lze jej nastavit ve Physics buttons (Object buttons - F7) na panelu Collision vedle záložky Fields:
Spodní část panelu již známe - týká se Softbodies, a proto nás bude zajímat horní část. Význam jednotlivých tlačítek:
- Damping - množství tlumení pohybu při odrazu (0 = partikly se budou odrážet bez jakéhokoli defektu, 1 = partikly se nebudou nijak odrážet; svezou se po meshi)
- Rnd - náhodná variace tlumení pohybu
- Friction - tření vzduchu při odrazu (vyšší číslo = odraz do menší výšky i dálky)
- Rnd - náhodná variace tření vzduchu
- Permeability - propustnost meshe (0 = nepropustí žádné částice, 1 = propustí všechny)
- Kill - aktivováno znamená, že pokud se částice dotkne deflektoru, pak zmizí
- Texture - textura bude ovlivňovat působící sílu, v současné době bohužel není k dispozici dokumentace
- Harmonic - částice budou harmonicky kmitat z emitoru přes centrum silového pole do obrazu osově souměrného s emitorem a zpět
- Magnetic - magnetické pole, particly se deformují podle siločar
- Vortex - částice se budou motat ve víru
- Wind - částice budou pod náporem plošně působící síly (simulace větru)
- Spherical - silové pole má kulovou oblast působnosti
- Strength - síla silového pole
- Damp - tlumení kmitů (pouze u typu Harmonic)
- Planar - (kromě Wind, Vortex a Texture) vytvoří plošné silové pole
- Pos - ovlivní částice pouze v kladném směru osy Z
- Fall-off - síla přechodu poklesu (z hodnoty 1 na hodnotu 0)
- Use - určuje, zda použít volbu MaxDist
- MaxDist - maximální vzdálenost od centra pole, v níž bude pole ještě působit
- Use - určuje, zda použít volbu MinDist
- MinDist - vzdálenost od centra pole, v níž začne pokles hodnoty síly pole
Závěrem
Je neuvěřitelné, jak obrovský kus práce vývojáři (a především Janne Karhu) odvedli. Částicový systém je nyní opravdu na vysoké úrovni, o čemž jsme se koneckonců v uplynulých třech dílech mohli na vlastní oči přesvědčit. Ovládat lze snad opravdu vše a velké množství experimentů lze provádět i na poli materiálů. To už ovšem, drazí čtenáři, nechám na každém z vás. Nakonec přikládám několik renderů, jichž se mi podařilo dosáhnout se statickými částicemi:
Těším se příště na shledanou,
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