Minska bullret

När man utför en slutlig rendering är det viktigt att minska bruset så mycket som möjligt. Här kommer vi att diskutera ett antal knep som visserligen bryter mot fysikens lagar, men som är särskilt viktiga när animationer ska renderas inom rimlig tid. Klicka för att förstora exempelbilderna för att se brusskillnaderna väl.

Banföljning

Cycles använder path tracing med next event-estimering, vilket inte är bra för att rendera alla typer av ljuseffekter, som caustics, men har fördelen att kunna rendera mer detaljerade och större scener jämfört med vissa andra renderingsalgoritmer. Detta beror på att vi inte behöver lagra t.ex. en fotonkarta i minnet och att vi kan hålla strålarna relativt koherenta för att använda en on-demand-bildcache, jämfört med t.ex. dubbelriktad path tracing.

../../../_images/render_cycles_render-settings_light-paths_rays.svg

Vi gör tvärtom mot vad verkligheten gör och spårar ljusstrålar från kameran in i scenen och till lamporna, snarare än från ljuskällorna in i scenen och sedan in i kameran. Detta har fördelen att vi inte slösar bort ljusstrålar som inte kommer att hamna i kameran, men innebär också att det är svårt att hitta vissa ljusvägar som kan bidra mycket. Ljusstrålarna skickas antingen i enlighet med ytans BSDF eller i riktning mot kända ljuskällor.

Se även

Mer information finns i dokumentationen Light Paths och Sampling.

Källan till bullret

För att förstå varifrån brus kan komma, ta till exempel scenen nedan. När vi spårar en ljusstråle till den plats som markeras av den vita cirkeln på en röd prick, ger den andra bilden nedan ett intryck av vad den diffusa shadern ”ser”.

För att hitta ljuset som reflekteras från den här ytan måste vi hitta den genomsnittliga färgen från alla dessa pixlar. Lägg märke till den blanka markeringen på sfären och den ljusa fläck som ljuset kastar på den närliggande väggen. Dessa hot-spots är mycket ljusare än andra delar av bilden och kommer att bidra avsevärt till belysningen av den här pixeln.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-reference.jpg

Scenen.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye.jpg

Irradians vid skuggningspunkten.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-hotspot.jpg

De upptäckta höjdpunkterna.

Ljuset är en känd ljuskälla, så dess plats är redan känd, men den eller de blanka ljuspunkter som det orsakar är en annan sak. Det bästa vi kan göra med path tracing är att fördela ljusstrålarna slumpmässigt över halvklotet i hopp om att hitta alla viktiga ljuspunkter. Om vi för vissa pixlar missar en ljuspunkt, men hittar den för en annan, resulterar det i brus. Ju fler prov vi tar, desto större är sannolikheten att vi täcker in alla viktiga ljuskällor.

Med några knep kan vi minska detta brus. Om vi suddar ut ljuspunkterna blir de större och mindre intensiva, vilket gör dem lättare att hitta och mindre brusiga. Detta ger inte samma exakta resultat, men ofta är det tillräckligt nära när man tittar genom en diffus eller mjuk glansig reflektion. Nedan följer ett exempel på användning av Glossy Filter och Light Falloff.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur-reference.jpg

Använda glansigt filter och ljusnedfall.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur.jpg

Irradians vid skuggningspunkten.

../../../_images/render_cycles_optimizations_reducing-noise_fisheye-blur-hotspot.jpg

De upptäckta höjdpunkterna.

Studsar

I verkligheten kommer ljuset att studsa ett stort antal gånger på grund av att ljusets hastighet är mycket hög. I praktiken kommer fler studsar att ge mer brus, och det kan vara bra att använda något som Limited Global Illumination-förinställningen i Light Paths-avsnittet som använder färre studsar för olika shadertyper. Diffusa ytor kan vanligtvis komma undan med färre studsar, medan glansiga ytor behöver några fler och transmissionsshaders som glas vanligtvis behöver mest.

../../../_images/render_cycles_optimizations_reducing-noise_0bounce.jpg

Inga studsar.

../../../_images/render_cycles_optimizations_reducing-noise_2bounce.jpg

Två studsar som mest.

../../../_images/render_cycles_optimizations_reducing-noise_4bounce.jpg

Fyra studsar som mest.

Det är också viktigt att använda shaderfärger som inte har komponenter med värdet 1,0 eller värden nära detta; försök att hålla det maximala värdet till 0,8 eller mindre och gör dina lampor ljusare. I verkligheten reflekterar ytor sällan allt ljus perfekt, men det finns naturligtvis undantag; vanligtvis släpper glas igenom det mesta ljuset, vilket är anledningen till att vi behöver fler studsar där. Höga värden för färgkomponenterna tenderar att ge upphov till brus eftersom ljusintensiteten då inte minskar särskilt mycket när det studsar mot varje yta.

Caustics och Filter Glossy

Caustics är en välkänd källa till brus som orsakar Fireflies. De uppstår eftersom renderingsprogrammet har svårt att hitta speglande höjdpunkter som ses genom en mjuk glansig eller diffus reflektion. Det finns ett No Caustics-alternativ för att helt inaktivera glossy bakom en diffus reflektion. Många renderare kommer vanligtvis att inaktivera caustics som standard.

../../../_images/render_cycles_optimizations_reducing-noise_reference.jpg

Standardinställningar.

../../../_images/render_cycles_optimizations_reducing-noise_no-caustics.jpg

Caustics inaktiverad.

../../../_images/render_cycles_optimizations_reducing-noise_filter-glossy.jpg

Filter Glossy större än noll.

Om du använder No Caustics kommer du dock att sakna ljus, och det täcker fortfarande inte fallet där en skarp glansig reflektion ses genom en mjuk glansig reflektion. Det finns ett Filter Glossy-alternativ för att minska bruset från sådana fall på bekostnad av noggrannheten. Detta kommer att sudda ut den skarpa glansiga reflektionen för att göra det lättare att hitta, genom att öka skuggans grovhet.

Bilderna ovan visar standardinställningar, ingen kaustik och filterglans inställd på 1,0.

Ljusavbrott

I verkligheten kommer ljus i ett vakuum alltid att falla av med en hastighet av 1/(avstånd^2). Men när avståndet går mot noll går detta värde mot oändligheten och vi kan få mycket ljusa fläckar i bilden. Dessa är främst ett problem för indirekt belysning, där sannolikheten för att träffa en sådan liten men extremt ljus fläck är låg och därför inträffar endast sällan. Detta är ett typiskt recept för Fireflies.

../../../_images/render_cycles_optimizations_reducing-noise_falloff-hard.jpg

Hård falloff.

../../../_images/render_cycles_optimizations_reducing-noise_falloff-soft.jpg

Mjuk falloff.

För att minska detta problem har Light Falloff-noden en Smooth-faktor, som kan användas för att minska den maximala intensitet som ett ljus kan bidra med till närliggande ytor. Bilderna ovan visar standard falloff och smooth värde 1.0.

Urval med multipel betydelse

Material med emissionsshaders kan konfigureras att använda Multiple Importance Sampling (Materialinställningar). Detta innebär att de kommer att få strålar skickade direkt mot sig, snarare än att hamna där baserat på strålar som slumpmässigt studsar runt. För mycket ljusstarka mesh-ljuskällor kan detta minska bruset avsevärt. Men när emissionen inte är särskilt ljus kommer detta att ta bort prover från andra ljusare ljuskällor för vilka det är viktigt att hitta dem på detta sätt.

Den optimala inställningen här är svår att gissa; det kan vara en fråga om att prova sig fram, men ofta är det tydligt att ett något glödande objekt kanske bara bidrar med ljus lokalt, medan ett mesh-ljus som används som ljus skulle behöva det här alternativet aktiverat. Här är ett exempel där de emitterande sfärerna bidrar lite till belysningen, och bilden renderas med något mindre brus genom att inaktivera Multiple Importance på dem.

../../../_images/render_cycles_optimizations_reducing-noise_sample-lamp.jpg

Multipel import av.

../../../_images/render_cycles_optimizations_reducing-noise_no-sample-lamp.jpg

Multipel betydelse på.

Världens bakgrund har också ett Multiple Importance (Inställningar) alternativ. Detta är mest användbart för miljökartor som har små ljusa fläckar i sig, snarare än att vara släta. Detta alternativ kommer sedan, i en förprocess, att bestämma de ljusa fläckarna och skicka ljusstrålar direkt mot dem. Återigen, om du aktiverar det här alternativet kan det ta bort prov från viktigare ljuskällor om det inte behövs.

Glas och transparenta skuggor

Med caustics inaktiverat kan glasskuggorna verka för mörka, och med filterglans kan caustics bli för mjuka. Vi kan skapa en glasskugga som använder en Glass BSDF när den betraktas direkt och en Transparent BSDF när den betraktas indirekt. Transparent BSDF kan användas för transparenta skuggor för att hitta ljuskällor rakt genom ytor och ger korrekt färgade skuggor, men utan kaustik. Noden Light Path används för att bestämma när vilken av de två shaders ska användas.

../../../_images/render_cycles_optimizations_reducing-noise_glass-group.png

Optimerad shader för glas.

Ovan kan vi se den nodkonfiguration som används för tricket med glasgenomskinlighet; till vänster har renderingen mörka skuggor på grund av saknad kaustik, och till höger renderingen med tricket.

../../../_images/render_cycles_optimizations_reducing-noise_glass-too-much-shadow.jpg

Standardglas BSDF.

../../../_images/render_cycles_optimizations_reducing-noise_glass-trick.jpg

Optimerad Glass Shader.

Ljusportaler

Vid rendering av en inomhusmiljö i dagsljus där det mesta av ljuset kommer in genom ett fönster eller en dörröppning är det svårt för integreringsenheten att hitta vägen till dem. För att åtgärda detta använder du Light Portals. Du måste sedan ändra dess form så att den matchar formen på den öppning som du försöker fylla.

../../../_images/render_cycles_light-settings_portals2.jpg
../../../_images/render_cycles_light-settings_portals.jpg

Denoising

Även med alla de inställningar som beskrivs ovan kommer det alltid att finnas lite renderbrus oavsett hur många prover du använder. För att åtgärda detta finns det en efterbehandlingsteknik för att rensa bort den sista biten av brus. För att använda detta aktivera Denoising i fliken Render i egenskaperna.

Nedan visas ett exempel på en rendering av The Pixelary.

../../../_images/render_layers_denoising_example1.jpg

Exempel på rendering före denoising.

../../../_images/render_layers_denoising_example2.jpg

Exempel på rendering efter denoising.

Klämma eldflugor

Med alla de tidigare knepen skulle Fireflies helst elimineras, men de kan fortfarande inträffa. För detta kan intensiteten som varje enskilt ljusstråleprov kommer att bidra med till en pixel klämmas fast till ett maximalt värde med integratorn Clamp setting.

Om inställningen är för låg kan det leda till att högdagrar saknas i bilden, vilket kan vara bra att bevara för kameraeffekter som bloom eller bländning. För att minska detta problem är det ofta bra att bara klämma fast indirekta studsar, så att högdagrar som är direkt synliga för kameran inte påverkas.

../../../_images/render_cycles_optimizations_reducing-noise_no-clamp.jpg

Ingen klämma (0).

../../../_images/render_cycles_optimizations_reducing-noise_clamp4.jpg

Med klämman inställd på 4.