Přehled nových funkcí v Blenderu (13. část): Částice (3/3) - 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

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:

Particle system panel

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
Pojďme si blíže představit možnosti tlačítka Set Editable. V prvé řadě bychom tedy samozřejmě měli vložit libovolný mesh a přidat mu nový částicový systém typu Hair. Po zbytek článku budeme používat Plane, a aby to nebyla jen suchá placka v prostoru, použijeme Subdivide Multi Fractal (zhuštění sítě s náhodným rozmístěním nových vertexů - označíme všechny vertexy a vybereme tuto volbu z menu vyvolaném klávesou W) s 5 segmenty. Pro optické zkrášlení můžeme přidat Subsurf:

Zahuštěný plane

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:

Nejjednodušší Hair částice
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):

Výběr Particle módu

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:

3 select módy

Popis tlačítek zleva doprava:

  • Path select - zobrazí částice jako křivky, nemůžeme vybírat jednotlivé částice; buď všechny, nebo žádnou

Path select mode

  • Point select - zobrazí klíčové body na každé částici, možnosti výběru nejsou omezené

Point select mode

  • Tip select - vybírat můžeme pouze koncové body částic

Tip select mode

  • 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)
Pozn.: pokud se při úpravách popsaných níže budeme nacházet v Point či Tip select módu a budeme mít vybrané některé částice, změny se projeví pouze na nich

Pokud se nám po vstupu do Particle módu neobjeví okénko Particle Edit Properties, snadno jej vyvoláme stiskem klávesy N.

Particle Edit Properties

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
A nyní již samotné druhy štětců:
  • None - žádné úpravy
  • Comb - posouvání

Snadná úprava pomocí Comb štětce
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
Devastace všemi štětci

Pojďme si ještě připomenout okénko Particle Edit Properties a popsat zbývající nastavení:

Particle Edit Properties

  • 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
K dispozici máme i pár extra možností editace, které se nacházejí v menu Particle na headeru 3D okna:

Particle menu

  • 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ě
Nyní se dostáváme k symetrické editaci částic, abychom ji však mohli provozovat, musíme dodržet několik podmínek.
  • 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
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:

Visualization panel

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:

Children panel

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
Šev
Bez Use Seams volby
Bez Use Seams volby
S Use Seams
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: 0.000
Round: 1.000
Round: 1.000

Ostatní nastavení jsou již shodná pro obě volby. Pojďme si ještě připomenout Children panel:

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.4
Clump: -0.7, Shape: 0.6
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)

Roughness

  • 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)
Nyní můžeme aktivovat volbu Kink/Branch (Smyčka/Rozvětvení) a v roletkovém menu vybrat způsob, kterým budou potomci rozmístěni kolem rodičů:
  • Curl - vytvoří "kudrnaté" částice

Kudrliny

  • Radial - vytvoří spirálu kolem rodičů

Spirály

  • Wave - zvlní potomky kolem rodičů

Vlny

  • Braid - vytvoří pletence kolem rodičů

Pletence

U každého z těchto typů máme kontrolu nad podrobnějším nastavením:

Kink/Branch

  • 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:

Simplification panel

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.

Material menu - Strand volby

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)
Pro speculární kanál se může použít (již existující) Use Tangent Shading (Tangentové stínování). Při použití AAO se vystínovaná barva přenáší i na particly - výpočet s raytracingem by byl mnohem náročnější na výkon. Pokud mesh otexturujeme stejným způsobem, jako vždy, difúzní kanál se automaticky převádí i na částice. Dodatečně lze částice otexturovat tak, že texturu namapujeme podél jejich délky, na panelu Map Input stačí zatrhnout volbu Strand.

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:

Spousta krychliček

Tedy nic nového pod Sluncem. Pojďme si v rychlosti představit nastavení:

Particle instance

  • 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 bez zapnutého Path
Krychle na částicích typu Hair se zaplým 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:

Collision panel

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í
Nyní se pojďme podívat na silová pole. Těmi mohou být libovolné objekty, mě osobně se ale nejvíce vyplatilo používat Empty. V roletkovém menu nahoře vlevo máme k dispozici 6 různých typů silových polí:
  • 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
V roletkovém menu vpravo nahoře můžeme vybrat typ poklesu síly (Fall-off) - kulový (Sphere), kuželový (Cone) či válcový (Tube) s tím, že pod tímto roletkovým menu jsou další nastavení tohoto poklesu síly. Uvedu jen ty nejnutnější a co se týče kulového typu - bohatě nám postačí tyto vědomosti:
  • 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
Pozn.: U Cone a Tube jsou ještě dodatková nastavení poklesu hodnoty síly, podle popisků na nich je zřejmá jejich funkce a tudíž si je zde nebudeme uvádět.

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í:

 » 3D grafika  

 

 

 

 

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

Uživatelské jméno:

Heslo: