Blender 2.5: Kouř a volumetrické materiály01.07.2010 Autor: Jankó Tomáš - Typ: TutoriálNový simulátor kouře je založen na Vlnové turbulenci pro simulaci kapaliny (Wavelet Turbulence for Fluid Simulation). Příklady a popis algoritmu (v angličtině) můžete najít zde. O implementaci do Blenderu se postaral Daniel Genrich. Po aktivaci simulace a jejím přehrání v Blenderu vidíme základní volumetrické nastavení materiálu kouře, které vykresluje OpenGL, ale pro samotný rendering je potřeba upravit nastavení materiálu. Nejdřív se ale vrhneme na samotné nastavení kouře:
Simulátor kouře má podobné zákonitosti jako simulátor kapaliny. Základem je tedy Domain objekt, v jehož Bounding Boxu se bude simulace odehrávat a mimo něj se nic počítat nebude. Dále je třeba Flow objekt s částicovým systémem, z nějž se bude kouř počítat. Vložme si tedy Plane a Cube, Plane bude mít nastavený jednoduchý částicový systém s nízkou hodnotou Normal a téměř nulovou gravitací, aby pohyb částic příliš divoce neovlivňoval pohyb kouře:
U částicového systému ještě nastavíme, aby se nerenderovaly jak částice, tak emitor. Na paletce Render v záložce Particles odznačíme Emitter a nastavíme None:
Na Physics panelu v části Smoke přidáme pro Plane simulaci kouře (Add) a nastavíme typ Flow. V roletkovém menu Particle System vybereme částicový systém, z jehož částic se bude emitovat kouř (defaultně ParticleSystem):
Rozdíl v hrubosti kouře: vlevo hodnota Density na 1.0, vpravo na 0.1 Nyní nastavíme krychli jako Domain, opět na paletce Smoke v záložce Physics a objeví se nám několik dalších nastavení pro celkovou simulaci:
Další paletkou je Smoke Field Weights. Zde se určuje vliv různých silových polí:
Povídání o silových polích a jejich působení na kouř, popř. částice ale necháme na jindy - jednak jde o poměrně rozsáhlé téma (ač nesložité), jednak je Blender 2.5 zatím stále ještě v Alpha verzi a při testování jsem shledal, že zde patrně ještě vše nefunguje tak, jak má. Další paletkou je Smoke Cache - zde se nachází veškerá nastavení ohledně zapékání simulace:
Další paletka pro nás bude jedna z nejzajímavějších. Smoke High Resolution použije vysoké rozlišení a kouř tak vypadá ještě uvěřitelněji:
Rozdíl mezi základním a vysokým rozlišením (převzato z blender.org) Pokud použijeme vysoké rozlišení, vyskočí nám další paletka Smoke High Resolution Cache, na které se nachází nastavení pro zapékání High Resolution. Je třeba aby soubory pro vysoké rozlišení měly rozdílný název, než základní simulace. Zapekání jako takové, obzvlášť při použití High Resolution ale zatím není příliš spolehlivým způsobem, jak si uchovat simulaci i po zavření Blenderu. Pro uchování možná ano, ale občas se po zapečení objevují chyby jako zásek na určitém framu nebo mizení kouře. Jediné opravdu spolehlivé řešení je (po nastavení všeho potřebného) přehrát animaci ve 3D okně ALT+A a poté u obou Cache převést z paměti na disk. Poslední paletkou týkající se simulace kouře je Smoke Groups. Zde určujeme skupiny Flow a Collision objektů, které jediné se budou účastnit výpočtu:
Prošli jsme si tedy všechna nastavení, nyní stačí stisknout jen ALT+A a nechat simulaci vypočítat:
Nové možnosti materiálůJeště než kouři nastavíme materiál, bude třeba rozebrat trochu teorie. S verzí 2.5 přišel úplně nový typ materiálu - Volume. Vychází z toho, že objekt nemá pevný povrch a světlo se po průniku do něj odráží různými směry, rozptyluje se atd. Pokud nastavíme typ materiálu jako Volume, objeví se nám specifická nastavení:
Ještě jedna paletka je důležitá pro nastavování Volume materiálu - paletka Lighting:
Tímto jsme se prokousali možnostmi Volume materiálů, pojďme si vše vyzkoušet v praxi. Našemu Domain objektu (krychli) nyní přidáme nový materiál typu Volume a nastavíme mu Density na 0. Proč? Protože kouř se bude renderovat na základě voxelových dat textury a při hodnotách vyšších než 0 by byl zřetelný objem krychle na úkor viditelnosti samotného kouře. Density Scale nastavíme na požadované číslo, např. 5, záleží jen na tom, jak hrubý kouř mít chceme - tím, že Density je na nule, se Density Scale stává jediným parametrem, kterým lze ovlivnit hrubost kouře na renderu. Scattering nastavíme podle chuti, např. na hodnotu 3. Posledním, co musíme udělat, je přidání textury. Přepneme se do záložky Textures a přidáme novou texturu typu Voxel Data
V záložce Voxel Data nastavíme v kolonce Domain Object naši krychli:
Posledním, co musíme udělat, je zatrhnout volbu Density na paletce Influence (nově se v Blenderu nastavuje mapování textury přímo u textury a ne u materiálu - konečně). Z nějakého záhadného důvodu mi ale Blender původně nechtěl renderovat tak, jak jsem předpokládal. Místo jedné simulace kouře jsem měl 5x5x5 minisimulací rozprostřených v celém objemu Domain objektu. Pomohlo až nastavení pětkrát menší velikosti mapování (hodnota Size v Mapping paletce), tedy 0,2 pro každý koordinát X, Y i Z. Nyní máme hotovo:
I když ještě implementace simulátoru kouře do Blenderu není kompletní, rozhodně je vidět kus práce a při troše experimentování, ke kterému jsem vás, doufám, aspoň trochu naladil, lze dosáhnout překvapivých výsledků. Těším se příště na shledanou. Online portfolio, bio a další informace o autorovi naleznete na www.jankosh.com.
|
![]() |
||||






