
Ambient Occlusion: SSAO vs HBAO vs GTAO (Guida 2026)
Panoramica
Introduzione
L'ambient occlusion (occlusione ambientale) è uno di quei concetti di rendering che tutti hanno visto a schermo per oltre quindici anni, eppure quasi nessuno riesce a definirlo con precisione. Apri il menu delle impostazioni grafiche di un gioco e troverai quasi certamente un'opzione "Ambient Occlusion" con valori etichettati SSAO, HBAO o GTAO. Apri Blender, Cinema 4D o 3ds Max e troverai un pass AO sepolto tra le impostazioni di rendering. Gli screenshot mostrano risultati visivamente diversi, il costo in termini di prestazioni varia di un ordine di grandezza, e la documentazione raramente spiega in modo chiaro i compromessi in gioco.
In Super Renders Farm lavoriamo con job di rendering distribuito CPU e GPU sin dal 2010, e l'ambient occlusion compare in circa la metà dei ticket di supporto che gestiamo per archviz e lavori di product visualisation. Il pattern è ricorrente: i professionisti o si affidano eccessivamente all'AO come scorciatoia per l'illuminazione globale, oppure la disabilitano del tutto e si ritrovano con geometrie che sembrano fluttuare senza essere ancorate al terreno. Entrambi gli errori sono risolvibili una volta che si comprende cosa calcola effettivamente l'AO.
Questa guida spiega l'ambient occlusion dai principi fondamentali, illustra i tre algoritmi real-time più diffusi nei motori di gioco del 2026 (SSAO, HBAO, GTAO), e analizza quando il baking AO è abbastanza veloce da essere eseguito su una singola workstation rispetto a quando è preferibile affidarsi a un render farm. Consulta le FAQ in fondo per risposte rapide alle domande più frequenti.
Cos'è realmente l'Ambient Occlusion
L'ambient occlusion è una tecnica di shading che approssima la quantità di luce ambiente che raggiunge ogni punto su una superficie, verificando quanto quel punto sia "occluso" dalla geometria circostante. Un angolo dove una parete incontra il pavimento riceve meno luce ambiente rispetto al centro della stessa superficie, perché l'angolo ha più geometria che blocca i raggi in arrivo dall'emisfero superiore. L'AO scurisce quell'angolo. Questo è l'intero effetto.
Il motivo per cui l'AO è diventata così diffusa è economico. Una soluzione completa di global illumination — che rimbalza la luce su ogni superficie e la integra correttamente — è costosa. L'AO cattura una componente specifica del GI (l'auto-ombreggiatura locale della luce ambiente/cielo) in modo molto efficiente, campionando i raggi soltanto a breve distanza dal punto ombreggiato. Nel rendering offline di solito si preferisce il GI completo; l'AO viene quindi disabilitata oppure usata come elemento sottile per potenziare le ombre di contatto. Nel rendering real-time, l'AO è storicamente stata l'unica approssimazione praticabile dell'ombreggiatura indiretta, motivo per cui ogni motore di gioco include almeno un algoritmo AO.
Vale la pena chiarire alcuni equivoci comuni:
- L'AO non è un'ombra prodotta da una sorgente luminosa. Scurisce indipendentemente dalla posizione delle luci, perché rappresenta l'occlusione dell'intero emisfero ambiente.
- L'AO non è global illumination. Il GI reale tiene conto del colore e della luminosità della luce indiretta che rimbalza tra le superfici; l'AO scurisce soltanto. Usare l'AO come sostituto del GI è una causa frequente di render archviz dall'aspetto piatto e fangoso.
- L'AO non è automaticamente fisicamente corretta. Il risultato dipende interamente dall'algoritmo e dalla distanza massima dei raggi impostata. Aumenta eccessivamente il raggio e un interno pulito si trasformerà in una caverna buia.
Il manuale di Blender copre il nodo AO offline nella sua documentazione sullo shader Ambient Occlusion, un riferimento utile per chi vuole approfondire la matematica sottostante al campionamento.
SSAO vs HBAO vs GTAO: Tre Algoritmi, un Solo Effetto
I tre algoritmi presenti nei motori di gioco del 2026 puntano tutti allo stesso obiettivo visivo, ma con compromessi diversi tra velocità, qualità e stabilità rispetto alla direzione di visione.
| Algoritmo | Anno di introduzione | Cosa campiona | Costo tipico (1080p, GPU classe RTX) | Punti di forza | Punti deboli |
|---|---|---|---|---|---|
| SSAO (Screen-Space AO) | 2007 (Crytek, Crysis) | Campioni casuali nello spazio schermo attorno a ogni pixel, solo depth buffer | ~0,3–0,8 ms | Molto economico, presente in tutti i motori | Rumoroso, aloni attorno alle silhouette, sfarfallio dipendente dalla vista |
| HBAO / HBAO+ (Horizon-Based AO) | 2008 (NVIDIA) | Marcia i raggi nel depth buffer per trovare l'angolo dell'orizzonte in più direzioni | ~0,8–1,5 ms | Più uniforme di SSAO, meno aloni, consapevole della geometria | Più costoso, ancora screen-space, può perdere occlusori fuori schermo |
| GTAO (Ground-Truth AO) | 2016 (Activision/Intel) | Integra analiticamente il cono di visibilità, derivato per corrispondere all'AO ray-traced offline | ~1,0–2,0 ms | Corrispondenza più fedele all'AO ray-traced di riferimento, stabile in movimento, falloff calibrato | Leggermente più costoso di HBAO, richiede una calibrazione attenta di raggio e falloff |
Il paper originale di NVIDIA sull'Horizon-Based Ambient Occlusion in Image Space rimane il riferimento canonico per la famiglia horizon-based, mentre il whitepaper di Activision Practical Real-Time Strategies for Accurate Indirect Occlusion (GTAO) copre la derivazione GTAO adottata successivamente da AMD e Intel.
Un modello mentale utile: SSAO è un compromesso veloce con artefatti visibili; HBAO è un compromesso più intelligente che tiene conto della geometria; GTAO è calibrato rispetto a un riferimento offline ed è la scelta da privilegiare quando le prestazioni lo consentono. Su qualsiasi GPU moderna degli ultimi tre o quattro anni, tutti e tre sono essenzialmente gratuiti a 1080p — la scelta riguarda qualità e stabilità del movimento, non il frame rate.
Esiste anche una linea separata per l'AO ray-traced (RTAO), che utilizza le unità hardware di ray tracing della GPU per sparare raggi reali per pixel. RTAO è ciò a cui si passa quando rimane budget per il ray tracing dopo riflessioni e ombre; è la cosa più vicina alla "ground truth" in tempo reale, ma non è ancora il default nella maggior parte dei motori per via del costo su GPU di fascia inferiore.
Conviene Attivare o Disattivare l'Ambient Occlusion?
È una delle query di ricerca più frequenti sull'argomento ("ambient occlusion on or off") e la risposta dipende dall'uso che se ne fa.
Nei giochi, l'AO quasi sempre vale la pena di essere attivata. Il miglioramento visivo derivante dalle ombre di contatto sotto i mobili, la vegetazione e i personaggi è significativo, e su hardware uscito dalla serie RTX 20 in poi il costo è di pochi millisecondi. L'unica situazione in cui disattivarla risulta utile è su una GPU molto più datata abbinata a un monitor ad alto refresh rate, dove ogni millisecondo conta.
Nelle anteprime real-time all'interno dei software DCC (Eevee, viewport di Cinema 4D, viewport di 3ds Max), l'AO è utile per valutazioni di blocking e illuminazione, ma non va usata come riferimento per il giudizio finale sull'immagine. L'AO del viewport è di solito un'approssimazione SSAO di bassa qualità. Abbiamo visto professionisti prendere decisioni illuminotecniche basate sull'AO del viewport che scompaiono nel render finale.
Nel rendering offline finale (Cycles, V-Ray, Corona, Arnold, Redshift), la risposta è più articolata. Se la scena usa una soluzione GI completa — path tracing di Cycles, brute force o light cache di V-Ray, il path tracer di Corona, il GI di Arnold — allora l'AO è già implicitamente considerata nell'illuminazione indiretta, e aggiungere un pass AO esplicito di solito rende l'immagine più scura del dovuto. Se si lavora in una pipeline stilizzata o NPR in cui il GI fisicamente accurato non è l'obiettivo, un pass AO esplicito può aggiungere un'utile oscurazione di contatto; si consiglia di renderizzarlo come elemento separato in modo da poterne regolare il contributo in compositing anziché incorporarlo direttamente nella beauty.
La risposta breve: lasciala attiva nei giochi, disattivala come effetto sull'immagine finale quando si dispone di GI completo, e renderizzala come pass quando si ha bisogno di un controllo stilistico.
Ambient Occlusion nei Giochi vs Rendering Offline
Esiste una differenza strutturale tra l'AO nei motori real-time e nei renderer offline che vale la pena rendere esplicita, perché spiega gran parte della confusione.
L'AO real-time opera sul depth buffer. Il motore ha già rasterizzato la scena, dispone della profondità per pixel (e di solito delle normali), e il pass AO analizza i pixel vicini nello spazio schermo per stimare l'occlusione. Questo è veloce ma ha due limitazioni strutturali: tutto ciò che è fuori schermo non contribuisce all'occlusione (quindi una parete appena fuori dal frustum della telecamera non scurirà l'angolo di un oggetto visibile), e il pattern di campionamento deve essere calibrato con cura per evitare rumore e sfarfallio dipendente dalla direzione di visione.
L'AO offline opera sulla geometria reale della scena. Il renderer spara raggi da ogni punto di shading e misura l'occlusione nel vero spazio 3D. Questo è più lento per campione, ma produce risultati stabili e ground-truth che non sfarfallano quando la telecamera si muove e non perdono occlusori fuori schermo. La maggior parte dei renderer di produzione espone l'AO offline come nodo (Blender Cycles, Arnold) o come render pass (V-Ray, Corona, Redshift).
Quando un professionista chiede "perché la mia AO appare diversa nel viewport rispetto al render finale?", la risposta è quasi sempre questa: il viewport sta eseguendo l'AO screen-space mentre il render finale la calcola nello spazio mondo. Sono algoritmi diversi che producono immagini diverse.
Per un approfondimento sul lato GPU di questo processo, la pagina del nostro GPU cloud render farm illustra come configuriamo hardware di classe RTX sia per workload di rendering GPU real-time che offline.
Perché il Baking AO Rallenta la Produzione
La questione prestazionale più rilevante per i team di produzione non è l'AO real-time — che nel 2026 è essenzialmente gratuita — ma il baking AO offline, che è dove le pipeline effettivamente rallentano.
Il baking AO consiste nel precalcolare il valore AO per ogni texel di una UV map e memorizzarlo in una texture. È ampiamente usato nelle pipeline di gioco (dove la mappa AO baked viene campionata a runtime al posto del calcolo live dell'AO) e in alcuni workflow archviz per l'illuminazione statica. Il costo dipende da tre fattori: complessità della scena, risoluzione della texture e numero di raggi.
Di seguito una tabella rappresentativa dei tempi di bake ricavata dai job eseguiti per i clienti sulla nostra fleet di Super Renders Farm. Questi valori si riferiscono a bake CPU in Blender Cycles sul nostro nodo CPU standard (Dual Intel Xeon E5-2699 v4, 44 core, 256 GB RAM); i tempi su una singola workstation saranno considerevolmente più lunghi.
| Tipo di scena | Numero di poligoni | Risoluzione UV map | Campioni per texel | Tempo per nodo | Note |
|---|---|---|---|---|---|
| Prop hero, bassa complessità | ~50K | 2048² | 256 | 2–3 min | Bake triviale, va bene una singola workstation |
| Interno architettonico, stanza singola | ~500K | 4096² | 512 | 25–40 min | Al limite — dipende dalla scadenza |
| Esterno archviz completo con vegetazione | ~5M | 4096² × 8 tile | 512 | 4–6 ore | Pesante su una workstation, veloce su un render farm |
| Ambiente di gioco, bake livello completo | ~10M | 8 × 4096² atlases | 1024 | 10–18 ore | Blocca il professionista per un'intera giornata su una workstation |
| Batch bake libreria asset cinematografici | misto | misto | 512–1024 | 30–80 ore totali | Sequenziale su workstation, parallelo su un render farm |
Il punto di pareggio, nella nostra esperienza, è intorno ai 30 minuti per un singolo bake. Al di sotto di questa soglia, l'overhead per impacchettare la scena, caricarla e scaricare il risultato supera il tempo risparmiato. Al di sopra, soprattutto quando un professionista rimane fermo ad aspettare il completamento del bake, distribuire il lavoro su più macchine risulta vincente con ampio margine. I baker basati su tile (Blender, V-Ray, Arnold) si parallelizzano particolarmente bene perché ogni tile è un job indipendente.
Su Super Renders Farm questo scenario si presenta più frequentemente durante la fase di finalizzazione degli asset di una produzione: decine di prop richiedono bake AO aggiornati, i professionisti sono bloccati, e un render farm assorbe la coda durante la notte. Per il contesto sui prezzi, consulta la nostra guida ai prezzi del render farm; per i benchmark sull'intera fleet, il benchmark hardware del render farm con Cinebench 2026 illustra come si comportano i nostri nodi CPU su workload CPU paralleli.
Ambient Occlusion nei Principali Software DCC
Ogni DCC principale implementa l'AO in modo leggermente diverso, e i consigli pratici cambiano di conseguenza.
Blender espone l'AO in tre punti: il toggle AO del viewport Eevee (un'approssimazione rapida in stile SSAO/HBAO), il nodo AO di Cycles (per uso a livello di shader, ad esempio maschere dirt nei materiali) e il render pass AO di Cycles (un pass AO realmente ray-traced in output accanto alla beauty). Il baking AO di Cycles tramite il pannello Bake è il workflow più diffuso; la tabella dei tempi di bake sopra è stata misurata in Cycles. Per i professionisti che usano Blender su una singola workstation, la nostra pagina Blender cloud render farm illustra come i bake AO di Cycles scalano sulla nostra fleet.
Cinema 4D offre l'AO sia nel renderer Standard/Physical sia in Redshift. In Redshift, l'AO è tipicamente usata come effetto shader o come pass di compositing anziché come sostituto del GI. La pagina Cinema 4D cloud render farm copre la configurazione specifica per Redshift. La maggior parte degli utenti C4D + Redshift che seguiamo calcola l'AO come render element e la combina in After Effects anziché integrarla nella beauty.
3ds Max con V-Ray dispone di un materiale VRayDirt dedicato e di un render element VRayExtraTex AO. L'approccio Dirt è più flessibile perché consente di controllare falloff, sfocatura e occlusione invertita (cavity) per materiale; l'approccio render element è più veloce da impostare ma meno configurabile. Per gli utenti Corona in 3ds Max, l'equivalente è la mappa CoronaAO.
Arnold (in Maya, Houdini o 3ds Max) tratta l'AO come un semplice problema di campionamento, esponendola tramite lo shader aiAmbientOcclusion e l'AOV ambient_occlusion. Poiché Arnold è un path tracer unidirezionale con importance sampling avanzato, i bake AO convergono più velocemente rispetto ad altri renderer a parità di numero di campioni.
Il filo conduttore: in qualsiasi DCC, tratta l'AO come un pass separato da compositare, non come sostituto del GI nel render beauty. Questo mantiene il workflow flessibile e permette di modificare il contributo dell'AO in post-produzione senza dover ri-renderizzare la scena.
FAQ
Q: Cos'è l'ambient occlusion in parole semplici? A: L'ambient occlusion è una tecnica di shading che scurisce le aree in cui la geometria blocca la luce ambiente dal raggiungere una superficie — come l'angolo dove una parete incontra il pavimento. Approssima in modo efficiente una componente specifica della global illumination, motivo per cui ogni motore di gioco e renderer offline include un'implementazione.
Q: Nei giochi conviene attivare o disattivare l'ambient occlusion? A: Attivata, nella quasi totalità dei casi. Il miglioramento visivo derivante dalle ombre di contatto sotto i mobili, i personaggi e la vegetazione è significativo, e su qualsiasi GPU degli ultimi anni il costo è ben al di sotto dei 2 ms per frame. L'unico caso in cui disattivarla può essere utile è su hardware più datato dove si combatte per ogni millisecondo.
Q: Qual è la differenza tra SSAO, HBAO e GTAO? A: SSAO è l'algoritmo screen-space originale del 2007 — veloce ma rumoroso, con aloni visibili. HBAO fa avanzare i raggi nel depth buffer per trovare l'angolo dell'orizzonte e produce risultati più uniformi. GTAO è il più recente dei tre: è calibrato per corrispondere all'AO ray-traced offline ed è il più stabile in movimento. Tutti e tre operano nello spazio schermo e hanno un costo simile su GPU moderne.
Q: L'ambient occlusion è uguale alla global illumination? A: No. La global illumination tiene conto della luce indiretta che rimbalza, trasportando colore e luminosità tra le superfici. L'ambient occlusion scurisce solo le aree in base all'occlusione locale della geometria, senza colore o intensità della sorgente luminosa. Usare l'AO come sostituto del GI è una causa frequente di render archviz dall'aspetto fangoso o piatto.
Q: Quando il baking AO ha bisogno di un render farm? A: Quando il bake richiede più di circa trenta minuti per asset, quando si hanno molti asset da processare in parallelo, o quando il professionista è bloccato ad attendere il risultato. Sulla fleet di Super Renders Farm, la maggior parte dei team di produzione sposta i bake su un render farm nella fase di finalizzazione degli asset — tipicamente una coda di decine di prop che su una singola workstation richiederebbe giorni in sequenza, ma che distribuita si completa nel corso di una notte.
Q: Perché la mia ambient occlusion appare diversa nel viewport rispetto al render finale? A: Il viewport usa quasi sempre un'approssimazione screen-space (una variante veloce di SSAO o HBAO), mentre il render offline finale calcola l'AO nello spazio mondo usando raggi geometrici reali. Sono algoritmi diversi che producono immagini diverse. Per le decisioni illuminotecniche finali, esegui un render di anteprima a basso numero di campioni anziché affidarti all'AO del viewport.
Q: Posso usare l'ambient occlusion come render pass nel rendering offline? A: Sì, ed è il workflow consigliato quando si ha bisogno di un controllo stilistico. Tutti i principali renderer (Cycles, V-Ray, Corona, Arnold, Redshift) espongono l'AO come render element separato o AOV. Renderizzala accanto alla beauty e combina le due in compositing — in questo modo puoi regolare il contributo dell'AO senza ri-renderizzare la scena.
About Alice Harper
Blender and V-Ray specialist. Passionate about optimizing render workflows, sharing tips, and educating the 3D community to achieve photorealistic results faster.


