How do I use the ambient occlusion effect?

Ambient Occlusion & Amplify Occlusion: Dybdegående Guide

23/06/2024

Rating: 4.94 (2937 votes)

I verdenen af 3D-grafik er målet altid at opnå den mest realistiske og fordybende visuelle oplevelse. En af de mest afgørende teknikker til at opnå dette er Ambient Occlusion. Denne effekt tilføjer dybde og realisme ved at simulere, hvordan lys naturligt blokeres eller okkluderes i sprækker, huller og mellem tætliggende overflader. Forestil dig skyggerne, der dannes i hjørnerne af et rum eller under en genstand, der hviler på en overflade – det er præcis, hvad Ambient Occlusion sigter mod at replikere i realtid. Dette bidrager markant til opfattelsen af form og rum i en 3D-scene, hvilket gør objekter mere håndgribelige og scener mere troværdige.

What is amplify occlusion?
Amplify Occlusion provides an optional Deferred-path application mode that injects SSAO before the direct lighting stage in order to deliver natural and PBR-accurate results. Notice the direct lit stairs area and the sphere in the image below, in the Deferred image the the effect is exclusively applied to ambient lit surfaces.

I Unitys Universal Render Pipeline (URP) implementeres Ambient Occlusion som en Screen Space Ambient Occlusion (SSAO) Renderer Feature. Dette betyder, at den fungerer uafhængigt af post-processing effekter og Volumes, hvilket giver en fleksibel integration i dit rendering-workflow. Uanset om du bruger standard URP-shaders eller dine egne tilpassede Shader Graphs, kan SSAO forbedre den visuelle kvalitet af dine opaque objekter.

Indholdsfortegnelse

Forståelse af SSAO i URP

URP's SSAO-effekt er designet til at give en hurtig og effektiv måde at tilføje omgivende okklusion til dine scener. Som en Renderer Feature skal den tilføjes til en Renderer for at blive aktiv. Når den er tilføjet, vil alle kameraer, der bruger den pågældende Renderer, anvende SSAO-effekten, hvilket sikrer en ensartet visuel stil på tværs af dit projekt.

Tilføjelse af SSAO Renderer Feature

For at begynde at bruge SSAO i dit URP-projekt skal du følge nogle enkle trin:

  1. Åbn dit projekt i Unity.
  2. Naviger til den URP Renderer, du bruger (typisk fundet under dit Universal Render Pipeline Asset i Project-vinduet).
  3. I Inspector-vinduet for din Renderer skal du klikke på 'Add Renderer Feature' og vælge 'Screen Space Ambient Occlusion'.

Når funktionen er tilføjet, kan du justere dens egenskaber for at opnå det ønskede visuelle resultat og optimere ydeevnen.

Egenskaber for SSAO Renderer Feature

SSAO Renderer Feature leveres med en række konfigurerbare egenskaber, der giver dig kontrol over effekten. Forståelse af disse er nøglen til at balancere visuel kvalitet og ydeevne.

EgenskabBeskrivelseYdeevneindvirkning
MethodDefinerer typen af støj, SSAO bruger. Vælg mellem 'Interleaved Gradient Noise' (statisk) og 'Blue Noise' (dynamisk, animeret, mere subtil under bevægelse).Ubetydelig
IntensityStyrer mørkningseffektens styrke. Højere værdi giver mørkere okklusion.Ubetydelig
RadiusDefinerer den radius, inden for hvilken SSAO tager prøver af normal-teksturen for at beregne okklusion. En lavere radius forbedrer ydeevnen.Høj
Falloff DistanceObjekter længere væk end denne afstand vil ikke blive påvirket af SSAO. En lavere værdi kan øge ydeevnen i scener med mange fjerne objekter.Afhænger af applikationen
Direct Lighting StrengthStyrer effektens synlighed i områder eksponeret for direkte belysning. En højere værdi gør okklusionen mere synlig i oplyste områder.Ubetydelig
Quality SourceVælger kilden til normalvektorværdier. 'Depth Normals' bruger en mere nøjagtig normal-tekstur. 'Depth' rekonstruerer normaler fra dybde-teksturen og muliggør 'Normal Quality'.Afhænger af applikationen
Normal Quality(Kun aktiv med Source: Depth) Styrer kvaliteten af de rekonstruerede normalvektorer (Lav, Medium, Høj). Højere kvalitet giver glattere effekt.Medium
DownsampleReducerer opløsningen af Ambient Occlusion-passet med en faktor to, hvilket reducerer pixelantallet med en faktor fire. Giver en markant ydeevneforbedring, men mindre detaljeret effekt.Meget høj
After OpaqueBeregner og anvender SSAO efter det opake render-pass. Kan øge ydeevnen, især med 'Depth' som kilde, men kan forårsage over-mørkning i visse områder. God for mobile enheder.Medium
Blur QualityDefinerer kvaliteten af den sløring, der anvendes på SSAO-effekten (Høj/Bilateral, Medium/Gaussian, Lav/Kawase). Højere kvalitet giver glattere effekt, men koster mere ydeevne.Meget høj
SamplesAntal prøver, SSAO tager inden for den specificerede radius for hver pixel. Højere værdi giver glattere og mere detaljeret effekt, men reducerer ydeevnen.Høj

Implementeringsdetaljer

SSAO i URP bruger normalvektorer til at beregne, hvor udsat hvert punkt på en overflade er for omgivende belysning. Som standard bruger den _CameraNormalsTexture, som genereres af URP's DepthNormals Pass. Hvis du af en eller anden grund ikke ønsker at bruge DepthNormals Pass i dine shaders, kan du indstille 'Source'-egenskaben til 'Depth'. I dette tilfælde rekonstruerer Unity normalvektorerne fra dybde-teksturen, hvilket aktiverer 'Normal Quality'-egenskaben. Denne egenskab kontrollerer antallet af dybde-teksturprøver, der tages under rekonstruktionen, hvor 'Lav' bruger 1 prøve, 'Medium' bruger 5, og 'Høj' bruger 9.

Hvad er Amplify Occlusion?

Ud over de indbyggede løsninger findes der også tredjepartsløsninger, der tilbyder endnu højere kvalitet og ydeevne. En sådan løsning er Amplify Occlusion, specifikt Amplify Occlusion 2.0. Dette er et Unity Asset Store-produkt, der har sat sig for at levere en ny industristandard for hurtig, høj-kvalitets Screen Space Ambient Occlusion.

Et Nyt Paradigme: Ground Truth Ambient Occlusion (GTAO)

Amplify Occlusion 2.0 markerer et skift væk fra HBAO-baserede teknikker til fordel for den overlegne Ground Truth Ambient Occlusion (GTAO). GTAO bringer kvalitet og nøjagtighed tættere på traditionel raytracing, hvilket resulterer i en visuelt mere korrekt og realistisk okklusionseffekt. Dette er en markant forbedring i forhold til standard SSAO-teknikker.

Letvægtsløsning med Overlegen Ydeevne

Amplify Occlusion er designet til at være en letvægtsløsning, der er egnet til en bred vifte af platforme, herunder konsoller, mobile enheder, desktops og endda VR (Virtual Reality). Den tilbyder overlegen ydeevneskalering, selv når man kombinerer høj opløsning og en stor sampling-radius. Dette betyder, at du kan opnå en høj visuel kvalitet uden at ofre en acceptabel framerate, hvilket er kritisk for spil og interaktive applikationer.

Amplify Occlusion 2.0 lover at være op til 2 gange hurtigere end sin forgænger, Amplify Occlusion 1.0, samtidig med at den leverer dramatisk højere kvalitet. Denne kombination af ydeevne og visuel troskab gør den til et attraktivt valg for udviklere, der søger det bedste inden for Ambient Occlusion.

PBR-Nøjagtige Resultater med Deferred-Path Applikation

Et unikt aspekt ved Amplify Occlusion er dens valgfrie Deferred-path applikationstilstand. Typiske post-process okklusionsteknikker mørklægger direkte lys på samme måde som de mørklægger alt andet, der er synligt for kameraet. Dette kan resultere i unormalt stærk okklusion på lyse, oplyste overflader. Ved at injicere SSAO før den direkte belysningsfase kan Amplify Occlusion levere naturlige og Physically Based Rendering (PBR)-nøjagtige resultater, hvor effekten udelukkende anvendes på ambient-oplyste overflader. Dette er en kritisk forbedring for visuel realisme.

Ambient Occlusion vs. Amplify Occlusion: Hvilken skal du vælge?

Valget mellem URP's indbyggede SSAO og en premium-løsning som Amplify Occlusion afhænger af dine specifikke behov, budget og ønskede kvalitetsniveau.

URP's SSAO er en fremragende start. Den er gratis, fuldt integreret og giver et solidt fundament for at tilføje dybde til dine scener. Den er nem at sætte op og tilbyder tilstrækkeligt mange indstillinger til at justere effekten til de fleste almindelige brugsscenarier. For projekter med stramme budgetter eller mindre krav til absolut visuel perfektion er URP's SSAO et ideelt valg.

Amplify Occlusion 2.0 er derimod for dem, der søger det absolut bedste inden for Screen Space Ambient Occlusion. Med sin GTAO-baserede tilgang leverer den en overlegen visuel kvalitet og nøjagtighed, der er tættere på raytracing. Den er også optimeret til at levere exceptionel ydeevne, selv under krævende forhold. Hvis dit projekt kræver den højeste visuelle troskab, maksimale ydeevne, eller hvis du udvikler til platforme som VR eller konsoller, hvor hver eneste optimering tæller, er Amplify Occlusion en værdifuld investering. Dens evne til at integrere SSAO før direkte belysning for PBR-nøjagtige resultater er også en stor fordel for fotorealistiske applikationer.

Optimeringstips for Ambient Occlusion

Uanset hvilken Ambient Occlusion-løsning du vælger, er optimering afgørende for at opnå en god ydeevne. Her er nogle generelle tips:

  • Radius: En lavere 'Radius' værdi kan forbedre ydeevnen markant, da den reducerer antallet af prøver, der skal tages. Eksperimenter med den laveste værdi, der stadig giver en acceptabel visuel effekt.
  • Downsample: Aktivering af 'Downsample' er en af de mest effektive måder at forbedre ydeevnen på, da den reducerer den beregnede pixelantal med en faktor fire. Dette er især nyttigt for mobile platforme eller scener med mange post-processing effekter.
  • Blur Quality: Vælg den lavest mulige 'Blur Quality', der stadig giver et glat resultat. 'Low (Kawase)' er den hurtigste, men kan mangle detaljer sammenlignet med 'High (Bilateral)'.
  • Samples: Et lavere antal 'Samples' reducerer den beregningsmæssige belastning. Selvom 'High' giver den mest detaljerede okklusion, kan 'Medium' eller 'Low' være tilstrækkeligt for mange scener og give et stort ydelsesboost.
  • Falloff Distance: I store scener med mange fjerne objekter kan en lavere 'Falloff Distance' forhindre unødvendige beregninger på objekter, der alligevel er for langt væk til at drage fordel af effekten.
  • After Opaque: Overvej at aktivere 'After Opaque', især for mobile enheder, der bruger tile-baseret rendering. Dette kan forbedre ydeevnen ved at udnytte eksisterende dybdeværdier, selvom det kræver omhyggelig test for at undgå over-mørkning.

Ofte Stillede Spørgsmål

Hvad er Ambient Occlusion, og hvorfor er det vigtigt?

Ambient Occlusion er en grafikeffekt, der simulerer, hvordan lys blokeres i sprækker og tætliggende områder, hvilket får disse områder til at fremstå mørkere. Det er vigtigt, fordi det tilføjer en følelse af dybde, realisme og form til 3D-scener, hvilket gør objekter og miljøer mere troværdige for øjet.

Hvordan tilføjer jeg SSAO i Unitys Universal Render Pipeline (URP)?

Du tilføjer SSAO som en Renderer Feature til din URP Renderer. I Unity-editoren skal du navigere til din URP Renderer-asset, klikke på 'Add Renderer Feature' og vælge 'Screen Space Ambient Occlusion'.

Påvirker Ambient Occlusion ydeevnen meget?

Ja, Ambient Occlusion kan have en betydelig indvirkning på ydeevnen, især hvis indstillingerne er sat for højt. Egenskaber som 'Radius', 'Downsample', 'Blur Quality' og 'Samples' har den største indflydelse. Korrekt optimering er afgørende.

Hvad er forskellen mellem URP's SSAO og Amplify Occlusion?

URP's SSAO er en indbygget, gratis løsning, der er god til generelle formål. Amplify Occlusion er et premium-asset, der bruger den mere avancerede GTAO-teknik, hvilket giver overlegen visuel kvalitet, nøjagtighed og ydeevne, især velegnet til high-end projekter og specifikke optimeringsbehov som PBR-belysning.

Kan jeg bruge Ambient Occlusion på mobile enheder?

Ja, både URP's SSAO og Amplify Occlusion understøtter mobile enheder. Det er dog vigtigt at optimere indstillingerne aggressivt (f.eks. ved at bruge 'Downsample' og lavere kvalitetsindstillinger) for at opnå acceptabel ydeevne på mobil hardware.

Konklusion

Ambient Occlusion er en uundværlig teknik for alle, der ønsker at skabe visuelt overbevisende 3D-miljøer. Uanset om du vælger at udnytte den indbyggede SSAO-funktion i Unitys URP eller investere i en avanceret løsning som Amplify Occlusion, vil effekten markant forbedre dybden og realismen i dine scener. Ved at forstå de forskellige indstillinger og deres indvirkning på ydeevnen kan du finde den perfekte balance mellem visuel kvalitet og optimal framerate, hvilket sikrer en fordybende oplevelse for dine brugere.

Hvis du vil læse andre artikler, der ligner Ambient Occlusion & Amplify Occlusion: Dybdegående Guide, kan du besøge kategorien Teknologi.

Go up