Volymer

Volymrendering används för att återge olika effekter som inte kan återges med enbart hårda ytor.

  • Rök, eld eller moln skapas med hjälp av ett volymobjekt eller en vätskesimulering, med endast en volymshader.

  • Meshes kan också användas för att skapa sådana former genom att ta bort standardytans shader och använda en volymshader där meshformen definierar volymgränserna och texturerna definierar volymdensiteten.

  • Mist skapas med en volymskugga för världen eller med ett stort mesh-objekt som omsluter scenen.

  • Absorption i glas simuleras genom att kombinera en shader för glasytan med refraktion och en shader för volymabsorption för objektets inre.

Skuggning

Principlös volym

Principled Volume är en fysikaliskt baserad volym-shader som kan användas för att skapa ett brett utbud av volymmaterial. Den stöder spridning, absorption och emission i en nod som är lätt att använda. Eld kan återges med svartkroppsemission.

../../../_images/render_materials_components_volume_principled.jpg

Rök och eld renderade med Principled Volume shader.

Volymkomponenter

För mer kontroll kan komponenter för volymskuggning kombineras manuellt till en anpassad skuggningsinställning.

  • Volume Absorption absorberar en del av ljuset när det passerar genom volymen. Detta kan användas för att skugga t.ex. svart rök eller färgade glasobjekt, eller blandas med Volume Scatter-noden. Den här noden liknar den transparenta BSDF-noden, den blockerar en del av ljuset och låter annat ljus passera rakt igenom.

  • Volume Scatter låter ljuset spridas i andra riktningar när det träffar partiklar i volymen. Anisotropin definierar i vilken riktning ljuset är mer benäget att spridas. Ett värde på 0 låter ljuset spridas jämnt i alla riktningar (liknande den diffusa BSDF-noden), negativa värden låter ljuset spridas mestadels bakåt och positiva värden låter ljuset spridas mestadels framåt. Detta kan användas för att skugga vit rök eller moln till exempel.

  • Emission avger ljus från volymen, t.ex. för eld.

../../../_images/render_materials_components_volume_node.jpg

Absorption, spridning och emission i volym

Attribut

Vid rendering av rök och eld används volymattribut för att definiera volymens form och skuggning. Principled Volume shader använder dem som standard, medan anpassade volymshaders kan använda Attribute-noden för att hämta attribut som densitet, färg och temperatur.

Densitet

Alla volymshaders har en densitetsingång. Densiteten definierar hur mycket av ljuset som kommer att interagera med volymen, absorberas eller spridas, och hur mycket som kommer att passera rakt igenom. För effekter som rök skulle du ange ett densitetsfält för att indikera var i volymen det finns rök och hur mycket (densitet större än 0), och var det inte finns någon rök (densitet lika med 0).

Volymer i den verkliga världen består av partiklar, och en högre densitet innebär att det finns fler partiklar per volymenhet. Fler partiklar innebär att det finns en större risk för att ljus kolliderar med en partikel och absorberas eller sprids, i stället för att passera rakt igenom.

Volymer av nät

Meshes som används för volymrendering ska vara slutna och Manifold. Det innebär att det inte får finnas några hål i mesh. Varje kant måste vara kopplad till exakt två ytor så att det inte finns några hål eller T-formade ytor där tre eller fler ytor är kopplade till en kant.

Normaler måste peka utåt för att ge korrekt resultat. Normalerna används för att avgöra om en stråle går in i eller ut ur en volym, och om de pekar i fel riktning eller om det finns ett hål i nätet kan renderingsprogrammet inte avgöra vad som är volymens in- eller utsida.

Dessa regler är desamma som för korrekt återgivning av glasbrytning.

Världsvolym

En volymskuggning kan också appliceras på världen och fylla hela utrymmet.

För närvarande är detta mest användbart för nattetid eller andra mörka scener, eftersom världens yt-shader eller solljus inte kommer att ha någon effekt om en volym-shader används. Detta beror på att världens bakgrund antas vara oändligt långt borta, vilket är tillräckligt exakt för solen till exempel. För modelleringseffekter som dimma eller atmosfärisk spridning är det dock inte ett bra antagande att volymen fyller hela utrymmet, eftersom större delen av avståndet mellan solen och jorden är tomt utrymme. För sådana effekter är det bättre att skapa ett volymobjekt som omger scenen. Storleken på detta objekt avgör hur mycket ljus som sprids eller absorberas.

Multipel spridning

Verklighetseffekter som spridning i moln eller spridning under markytan kräver många spridningsstudsar. En opartisk rendering av sådana effekter kan dock vara bullrig, så som standard är antalet studsar noll i Cycles och inget stöd finns i EEVEE. Den effekt du får när du renderar med noll volymstudsar är vad som kallas ”single scattering”, effekten från fler studsar är ”multiple scattering”.

För rendering av material som hud eller mjölk som kräver multipel spridning är spridning under ytan mer effektiv och lättare att kontrollera. Särskilt metoden med slumpvandring kan ge en korrekt återgivning av sådana material.

För material som moln eller rök som inte har en väldefinierad yta krävs volymrendering. Dessa ser bäst ut med många spridningsbollar, men i praktiken kan man behöva begränsa antalet bollar för att hålla renderingstiderna acceptabla.