From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Suitsu simulatsioon

Blenderi uus suitsusimulatsioon põhineb artiklil 'turb.php|Wavelet Turbulence for Fluid Simulation' ja vastaval näidiskoodil, ning on Blenderisse porditud Daniel Genrichi poolt ja töökorras hoiab seda praegu Janne Karhu.

Simulaator põhineb mahulisel vedelikupõhisel mudelil, mille lõpptulemuseks on vokselite võre. Blenderis visualiseeritakse vokselite andmed interaktiivselt, kasutades OpenGL-i varjutamist ja renderdatakse voksliandmete (Voxel Data) tekstuuri abil. Blenderi suitsusimulatsioon mähib vokslid ümber olemasolevate osakeste. See vajab osakesi emiteerivat objekti ja 'toimimispiirkonna' objekti, mille sees suits renderdatakse.

See osa dokumentatsioonist vastab versioonile 2.58


Suitsusimulatsioon on sarnane vedelikusimulatsioonile. Simulatsiooni jaoks on vaja toimimispiirkonna objekti ja voolu objekti.

Suitsu toimimispiirkonna objekt

Nagu vedeliku simulatsioonil, on enamus seadeid näha, kui toimimispiirkonna objekt on valitud.

Töö käik

  • Loo või määra toimimispiirkonna (Domain) objekt või võre, mis määrab simulatsiooni piirid.
  • Loo või määra voolu (Flow) objekt, mis määrab, kust suitsu väljutatakse.
  • Määra kokkupõrke (Collision) objektid, mis stseenis suitsu mõjutavad.

Toimimispiirkond (Domain)

Loo toimimispiirkond

Enne kui saad oma stseenile suitsu lisada, pead määrama ala, kus suitsu simulatsioon toimub. Blenderi füüsikas nimetatakse seda toimimispiirkonnaks (Domain). Hea idee on selleks valida kuup, kuna sa saad hiljem selle skaleerida kaamera vaateväljale vastavaks. Meie teeme lihtsal vaikekuubi suuremaks, vajutades kiirklahvi S ja lohistades hiirega.

Ära muuda toimimispiirkonna tippe!
Kui tahad suuremat toimimispiirkonda, siis skaleeri objekti. Selle muutmine muutmisrežiimis põhjustab suitsu ilmumise renderdamise ajal rohkem kui ühes kohas, nagu korduva tekstuuri puhul.


Veendu, et oled objektirežiimis ja mine füüsika (Physics) kaardile. Lisa suits (Smoke) ja vali nupp tekstiga 'Domain' (toimimispiirkond). Praeguseks on see kõik, me pöördume väljailmunud uute seadete juurde hiljem tagasi.

Füüsika kaart võib olla peidetud Lisa suits Vali kuup toimimispiirkonnaks

Valikud

Resolution (lahutus)
Kui detailne suits on. Lahutusel 32 võtab eeltöötlus mõne sekundi, samas lahutusel 100 võib selleks enamikul PC-del kuluda kuni pool tundi.
Time Scale (ajaskaala)
Mõjutab simulatsiooni esitamise kiirust.
Border Collisions (servakokkupõrked)
Vertically Open (vertikaalselt avatud)
Suits kaob, kui ta puutub vastu toimimispiirkonna põhja või lage.
Open (avatud)
Suits kaob, kui läbib toimimispiirkonna piirid.
Collide All (põrka kõigiga)
Toimimispiirkonna piire koheldakse kui põrkeobjekti, suits põrkub ja jääb toimimispiirkonna sisse.
Temperature and Density (temperatuur ja tihedus)
Kui palju tihedus ja temperatuur suitsu liikumist mõjutavad. Kõrgemad väärtused teevad kiiremini tõusva suitsu.
Vorticity (keerised)
Määrab, kui turbulentne/keerduv või keerlev suits on.
Dissolve (hajumine)

Laseb suitsul aja jooksul hajuda.

Time (aeg)
Suitsu hajumise kiirus.
Slow (aeglane)
Kasutab aja (Time) väärtuse asemel väärtust 1/Time, tehes suitsu hajumise aeglasemaks.

Suitsugrupid

Suits kõrge lahutusega

Kõrge lahutuse (High Resolution) valik lubab sul simuleerida madala resolutsiooniga ja seejärel kasutab müratehnikaid, et lahutust suurendada, ilma seda tegelikult läbi arvutamata. See võimaldab animeerijal valmistada kiiresti ette madala lahutusega simulatsioon ja lisada hiljem detaile, muutmata üldist vedeliku/gaasi liikumist.

Selle jaoks on võimalikud erinevad meetodid, kaasa arvatud vaikemeetod Wavelet, mis realiseerib 'turb.php|Wavelet Vedelikusimulatsiooni turbulentsi' meetodi

Resolution/Divisions (lahutus/jagamisi)
Suurendab suitsu lahutust müra abil selle teguri võrra.
Smooth Emitter (sile emiteerija)
Silub emiteeritud suitsu, et vältida suitsu kandilisust.
Show High Resolution (näita kõrglahutust)
Näitab kõrget lahutust, kasutades võimendust.
Noise Method (müra meetod)
Wavelet
FFT (Fourier)
Strength (tugevus)
Müra tugevus.

Suitsuvälja kaalud

Määrab, kui palju erinevad jõud ja jõuväljad suitsu mõjutavad.

Gravity (gravitatsioon)
Kui palju gravitatsioon suitsu mõjutab.
All (kõik)
Muudab kõikide jõuväljade üldist mõju.

Ülejäänud seaded määravad, kui palju erinevad jõuväljad suitsu mõjutavad.

Suits koos tuule jõuväljaga

Sissevool (Inflow)

Loo voolu objekt

Nüüd, kui me oleme määranud mahu, mille sees suits hakkab olema, lisame objekti, millest suitsu hakatakse emiteerima. Lisa teine kuup ⇧ ShiftA  »  Mesh » Cube (võre->kuup) ja veendu, et see oleks toimimispiirkonna kuubi sees; valitud peab olema 3D-vaade).

Olles muutmisrežiimis, mine füüsika kaardile ja lisa väikesele kuubile samuti suits. Seekord vali vool (Flow).

Suitsu ei emiteerita mitte objektist endast, vaid osakestest, mida objekt emiteerib. Seega, peame looma osakeste süsteemi. Väike kuup ikka veel valitud, mine osakeste kaardile. Lisa uus osakeste süsteem ja lülita välja füüsika, sest me soovime, et suits emiteeritaks liikumatust kohast. Samuti ei taha me näha osakesi, seetüttu lülita välja ka renderdamine.

Osakeste kaart on otse füüsika kaardi kõrval Me ei taha, et füüsika mõjutaks osakesi Samuti ei taha me osakesi näha

Nüüd mine tagasi füüsika kaardile ja vali osakeste süsteem suitsu alajaotuses. Seal peaks olema süsteemide nimekiri, kust saab hetkel valida ainult ühe süsteemi, mille nimi on 'ParticleSystem', sest me ei muutnud nime. Nüüd saad kerida mööda ajatelge, et näha kuubikust suitsu tõusmas. Teine võimalus suitsu eelvaateks on animatsiooni mängimine kiirklahviga AltA (peata mängimine sama klahviga).

Vali siit äsja loodud osakeste süsteem Keri ajatelge või kasuta ALT+A Nüüd peaks 3D-vaates olema näha suits

Seaded

Outflow (väljavool)
Kustutab simulatsioonist suitsu.
Particle System (osakeste süsteem)
Sellest objektist emiteeritud osakeste süsteem.
Initial Velocity (algkiirus)
Suits saab oma kiiruse emiteerija osakestelt.
Multiplier (kordaja)
Kordaja suitsule edasiantava kiiruse seadmiseks.

Algväärtused

Absolute Density (absoluutne tihedus)
Lubab emiteerija alas ainult etteantud tihedust.
Density (tihedus)
Algne tiheduse väärtus.
Temp. Diff. (temperatuuride erinevus)
Temperatuuri erinevus võrreldes ümbritseva temperatuuriga.

Kokkupõrked

Suits võib põrkuda teiste objektidega, kui kasutada tema 'Põrke' (Collision) valikut. Hetkel on toetatud ainult põrked staatiliste objektidega.

Jõud

Töötavad ka Blenderi jõuväljad (nagu tuul ja keerisväljad), mis muudavad suitsu simulatsiooni samamoodi nagu teisi füüsikalisi süsteeme, näiteks osakesi.

Suitsu renderdamine

Loo materjal

Suitsu simuleerimine on lihtne, renderdamine samas aga mitte.

Renderdus ilma õige suitsu materjalita

Praegu renderdamine annab tulemuseks lihtsalt suure risttahuka (nagu pildil, F12) või kokkujooksmise (animatsioon, CtrlF12).

. Materjal peab olema mahuline materjal tihedusega (Density) 0 ja suure tiheduse skaala (Density Scale) väärtusega. Materjali seaded

Esimese probleemi saab kergesti lahendada, kui määrata toimimispiirkonna kuubi jaoks õige materjal ja tekstuur. Suits vajab keerukat materjali, et õigesti renderduda. Vali suur kuup ja mine materjalide kaardile. Seal määra materjali tüübiks Volume (mahuline) ja sea tiheduseks (Density) 0. Kui sead tiheduse väärtuse suuremaks kui 0, täitub toimimispiirkonna kuup üleni mahulise materjaliga. Samas mõjutavad suitsu ka teised seaded. Me käsitleme neid hiljem.

Mine materjalide kaardile Suits vajab mahulist materjali Tihedus rakendub ainult kuubile, seega peab see olema 0

Lisa tekstuur

Lisaks vajab suits ka oma tekstuuri. Blender 2.5-l on uus tekstuur just suitsu renderdamiseks, nimelt voksliandmed (Voxel Data). Sa ei tohi unustada määrata toimimispiirkonna objekti ja muuta mõju.

Tekstuuri seaded

Mine tekstuuri kaardile ja määra tüübiks Voxel Data (voksliandmed). Voxel Data seadete alt vali toimimispiirkonna (Domain) objektiks meie toimimispiirkonna kuup (selle nimi peaks olema lihtsalt Cube, kuna kasutame Blenderi vaikekuupi. Mõju (Influence) alt lülita sisse 'Tihedus' (Density) ja jäta selle väärtuseks 1000 (emissioon (Emission) peaks olema samuti automaatselt sisse lülitatud). Nüüd peaksid saama renderdada üksikuid kaadreid. Samuti saad valida suitsu värvi, lülitades "emissiooni värvi" (Emission Color) tagasi sisse.

Blender3D FreeTip.gif
Et näha suitsu selgemalt
Vali maailma (World) kaardilt horisondi jaoks väga tume värv.


Meil on vaja suitsule lisada tekstuur Tüüp peaks olema Voxel Data Toimimispiirkond on jälle kord suur kuup Kasuta mõjuna tihedust Lõpuks sinu esimene suitsu renderdus :)

Renderdatud suits. Seda on raske märgata, aga see on seal.

Suitsusimulaatori laiendamine: Tuli!

Saad muuta oma suitsu teise tekstuuri abil tuleks! Et teha tuld, keera materjalide paneelil emissiooni (Emission) väärtust juurde.

Tule materjal

Siis lisa teine tekstuur. (Jäta vana tekstuur alles, muidu ei ole suitsu näha.) Anna sellele leekiv värviüleminek - katvusega (alpha) värvide põhjal ja muuda mõju emissiooniks (Emission) ja emissiooni värviks (Emission Color). Vali segamise (Blend) tüübiks Multiply (korrutamine).

Tule tekstuuri seaded

Tule renderdus


Suitsu simulatsioonide eeltöötlus

Kui soovid teha animatsiooni, pead oma suitsu esmalt eeltöötlema. Eeltöötlus on lihtsalt simulatsiooni arvutamine. Et suitsu eeltöödelda, peab fail olema salvestatud. Arvutused salvestatakse vahemälu faili, millele saab ka nime anda. Mõnedel juhtudel võib Blender eeltöötlust tehes kokku joosta. [Vaata tõrkeotsingut]

Kerides mööda ajatelge või jooksutades animatsiooni 3D-vaates kiirklahviga AltA, oled sa juba teinud mällu reaalajas eeltöötlust. Aga et animatsiooni renderdada, peavad eeltöödeldud andmed olema kettal. Ja enne kui saad eeltöödelda, pead oma .blend-faili salvestama.

Järgmiseks vali toimimispiirkonna kuup, mine füüsika (Physics) kaardile ja ava suitsu vahemälu sektsioon (Smoke Cache). Anna oma vahemälu failile nimi, sisestades see tekstikasti ja vajutades ↵ Enter. Vajutades nupule Bake (eeltöötle), arvutatakse simulatsiooni andmed ja salvestatakse kettale. Kas märkad, et ajatelje viga on kadunud? Nüüd peaksid sa saama animatsiooni renderdada.

Mine oma suitsu toimimispiirkonna vahemälu sektsiooni Failid kettal vajavad nime Lõpuks oleme eeltöötluseks valmis


Tõrkeotsing

K: Blender jookseb kokku, kui vajutan suitsu simulatsiooni nuppu Domain (toimimispiirkond)!

V: Selle põhjustavad vananenud draiverid. Uuenda oma draivereid.

K: Blender jookseb suitsu simulatsiooni eeltöödeldes kokku!

V: Sul saab selle arvutamisel operatiivmälu otsa. Proovi eeltöödelda madalama lahutusega.

K: Suits ei renderdu!

V: Mine tagasi ja loe dokumentatsiooni.

K: Kui proovin teha tuld, annab see imelikke tulemusi või ei paista üldse välja.

V: Veendu, et sul on materjalile määratud kõrge emissiooni (Emission) väärtus, et sul on suitsu tihedustekstuur ja et oled tule tekstuuri segamisviisiks määranud Multiply (korruta).

Välised lingid