Nei primi tempi dei videogiochi, dove tutto ciò che avevamo erano pixel bidimensionali indistinguibili o grafica sprite, molto era lasciato all’immaginazione. A quei tempi, la computer grafica era composta da forme appena riconoscibili, fatte per passare per il loro mondo reale (o, in molti casi, per il mondo del cinema). Facevano del loro meglio e poi si concentravano su un gameplay divertente e ripetitivo che è un ottimo modo per passare il tempo ogni sabato pomeriggio. Questo è andato avanti per molto tempo, con l’Atari 2600 come principale console domestica che ha fatto il lavoro.
Dopo il crollo dei videogiochi degli anni ’80, Nintendo e Sega sono risorti dalle ceneri e hanno realizzato nuove console: rispettivamente il Nintendo Entertainment System e la Sega Genesis. Queste console presentavano una grafica molto migliore, dove si poteva davvero riconoscere ciò che è ogni singolo elemento. Certo, ce n’è ancora un po’ per l’immaginazione, ma sicuramente non sarebbe necessario lavorare così duramente come prima. Durante questa era a 8 bit e le successive epoche a 16 bit, la grafica sprite è stata portata al limite assoluto che la tecnologia dell’epoca poteva dare. Ma era ancora il regno del 2D o delle due dimensioni. La maggior parte dei giochi sarebbero stati a scorrimento laterale, o dall’alto verso il basso, e qualsiasi gioco “3D” sarebbe uscito avrebbe comunque utilizzato la grafica sprite. Era un ottimo modo per creare giochi, e molti giochi classici sono ancora considerati tra i migliori nel loro genere. Tuttavia, quando è nata la Sony Playstation, l’industria dei giochi non sarebbe stata più la stessa. Sarebbe entrata nel regno delle tre dimensioni, o 3d.
Con l’arrivo della grafica 3d è arrivata una nuova frontiera del videogioco. Improvvisamente, gli sprite bidimensionali erano un ricordo del passato, e gli sviluppatori di videogiochi hanno rapidamente spinto il tutto per creare una grafica 3d sempre migliore che rendesse l’immersione del gioco il migliore possibile dal punto di vista tecnologico. Se durante l’era degli 8 e dei 16 bit molto poco è stato lasciato all’immaginazione, con l’alba della grafica 3d, quasi nulla è rimasto. Gli sviluppatori di giochi potevano creare praticamente qualsiasi cosa potessero modellare e utilizzare nel gioco. E con il passare del tempo, la qualità di questa grafica 3d è migliorata.
Oggi, la qualità della grafica 3d nei videogiochi, soprattutto nei videogiochi tripla A, è talmente alta da offuscare le linee della realtà. Questo perché nel corso degli anni sono state sviluppate molte caratteristiche per migliorare notevolmente il realismo che la grafica 3d può portare. Dall’accelerazione hardware alla messa a punto del software, i giochi 3d di oggi sono anni luce al di là di quanto i produttori di videogiochi degli anni ’60 e ’70 potessero mai sognare.
Ci sono molti elementi nella grafica 3d che contribuiscono tutti a produrre un’unica fantastica immagine. L’illuminazione è, naturalmente, una delle più importanti. Poter tenere conto degli effetti delle luci in un’area e dell’ombreggiamento che causano potrebbe essere la differenza tra immagini di alta qualità. Ed è qui che entra in gioco Ambient Occlusion.
Cos’è Ambient Occlusion?
A prima vista, il termine ha un aspetto e un suono molto tecnico. E se lo si definisce scopre cosa significano separatamente le parole “ambient” e “occlusione”, si ha una vaga idea di cosa sia. I dizionari online definiscono “ambiente” come “relativo all’ambiente circostante di qualcosa”. Sembra abbastanza semplice. Tuttavia, “occlusione” significa un paio di cose leggermente diverse, che hanno tutte tre cose in comune: un blocco, una chiusura momentanea e il posizionamento.
Combinate, otterrete qualcosa sulla falsariga di “cose intorno a quel percorso di blocco”. Sembra ancora confuso? Non preoccuparti, in realtà non è lontano. Vedete, Ambient Occlusion è il metodo di ombreggiatura e di rendering per capire quanto di un punto specifico di una scena renderizzata riceve l’illuminazione ambientale. È il metodo per vedere quanto “accessibile” sia “accessibile” ogni punto della scena alla luce ambientale, in modo da produrre un effetto che sia molto più vicino a come funziona l’illuminazione del mondo reale. È diverso dalla creazione di ombre (a questo arriveremo più avanti) ma produce un effetto di ombreggiamento. Le aree chiuse o difficili da raggiungere vengono oscurate, e le aree esposte vengono illuminate, aumentando il realismo di una scena.
Ancora confuso? Pensala in questo modo. Prendete un tubo di carta igienica di cartone e mettetelo su un tavolo regolarmente illuminato. Date una sbirciatina all’interno del tubo e poi date un’occhiata fuori. Poiché l’interno del tubo non è facilmente raggiungibile con l’illuminazione ambientale, appare più scuro dell’esterno del tubo. Questo è ciò che fa Ambient Occlusion. Ora, se il mondo reale avesse impostazioni grafiche, e spegniamo Ambient Occlusion, non sarà così facile distinguere ciò che è l’interno del tubo dall’esterno. A meno che le texture (ci arriveremo anche a questo più tardi) del tubo di cartone non abbiano già delle ombre dipinte sopra.
Ambient Occlusion, se eseguita correttamente, dà come risultato una scena che appare molto più realistica rispetto a quando viene resa senza occlusione ambientale. Ma c’è stato un tempo in cui l’ambient occlusion non veniva utilizzata nei videogiochi. Nel 2001, il film Pearl Harbor con Ben Affleck e Kate Beckinsale, interpretato da Ben Affleck e Kate Beckinsale, utilizzava l’ambient occlusion. Nel 2007, però, il gioco di Crytek “Crysis” ha presentato lo Screen Space Ambient Occlusion, la prima volta che l’ambient occlusion è stata usata in un videogioco. I risultati furono sbalorditivi, e all’epoca Crysis fu salutato come un’epica fantascientifica magnificamente realizzata. Non solo per la storia e il gameplay, ma anche per la grafica all’avanguardia dell’epoca. Ma una tecnologia così all’avanguardia significava che al momento del lancio, Crysis aveva uno dei più alti requisiti hardware di qualsiasi altro gioco. Ciononostante, ha fissato l’asticella in cui gli altri titoli di tripla A che vogliono ottenere una grafica coinvolgente e realistica devono raggiungere o superare.
Come funziona l’Ambient Occlusion?
Ora sappiamo cos’è l’ambient occlusion. Ma come fa il suo lavoro aggiungendo profondità alla scena del videogioco sotto forma di ombreggiatura?
Il metodo sviluppato da Crytek, in particolare da Vladimir Kajalin, funziona come un algoritmo di un pixel shader. I pixel shader sono, in sostanza, calcolano diversi attributi e impostazioni di un’area di una scena o di un oggetto in una scena, e producono un risultato basato su questi calcoli. Può essere un risultato semplice come un semplice colore, o, in questo caso, una quantità di luce. Lo fa per ogni pixel presente sullo schermo.
Sembra un sacco di lavoro, e lo è. Probabilmente è proprio per questo che ci è voluto così tanto tempo per implementarlo nei videogiochi. Perché prima di questo, era molto difficile eseguire l’ambient occlusion tramite rendering in tempo reale. Ma la soluzione prodotta da Crytek, che utilizza il campionamento di un determinato numero di pixel invece di ogni pixel, ha ridotto notevolmente il tempo e l’elaborazione necessari. E con altre tecnologie sviluppate a fianco, ha permesso di produrre un’immagine di alta qualità accettabile per l’avanzamento della grafica dei videogiochi.
Oggigiorno esistono molti tipi di occlusione ambientale o AO, come la chiama l’industria, e funzionano in modo leggermente diverso l’uno dall’altro.
Tipi di ambient occlusion
I diversi tipi di ambient occlusion hanno risultati simili ma leggermente diversi a seconda di come uno sviluppatore di videogiochi li ha utilizzati. Ecco alcuni dei più comuni e i loro pro e contro.
SSAO o Screen-Space Ambient Occlusion – il nonno della tecnologia di ambient occlusion per videogiochi. Sviluppato da Crytek nel 2007, SSAO ha stabilito lo standard quando si tratta di ambient occlusion e ad oggi è l’opzione predefinita per la maggior parte dei videogiochi rilasciati.
Caratteristiche principali:
-
- Poco o niente risorse di CPU – a causa dell’algoritmo utilizzato, non c’è praticamente bisogno di usare la CPU. L’SSAO può essere fatto dall’unità di elaborazione grafica o dalla GPU.
- Veloce e a basso consumo di risorse – poiché non c’è bisogno di pre-elaborazione, SSAO ha praticamente zero tempo di caricamento e allocazioni di memoria. SSAO può essere fatto specificamente nella GPU
- Coerente e affidabile – l’algoritmo viene applicato ogni volta allo stesso modo.
- Adattabile – può essere applicato in vari modi dagli sviluppatori di videogiochi e dai produttori di GPU.
Questo dà più profondità e realismo al di sopra di ciò che SSAO già porta e avvicina sempre di più i videogiochi all’impostazione sempre più sfuggente del fotorealismo.
Caratteristiche principali:
-
- Illuminazione più realistica – tenendo conto della direzione della luce proveniente da sorgenti luminose, la profondità dell’illuminazione diventa molto più elevata.
- Non così lontano dai requisiti delle risorse SSAO – anche se SSDO è il successore di SSAO e ha più caratteristiche, i requisiti delle risorse rimangono molto simili ad esso e questo non è un grosso onere per le moderne GPU.
HBAO/HDAO o Horizon-Based Ambient Occlusion e High-Definition Ambient Occlusion – queste sono varianti di SSAO che appartengono a due sviluppatori di GPU. Nvidia possiede HBAO e AMD possiede HDAO. Non sono poi così diverse da SSAO, ma producono una migliore occlusione ambientale, specialmente se usate con le rispettive schede video. Questo, tuttavia, avviene al costo di un maggiore fabbisogno di risorse e di un calo delle prestazioni, a meno che la GPU utilizzata non sia molto aggiornata.
VXAO o Voxel Ambient Occlusion – questo è il passo successivo per HBAO ed è stato sviluppato anche da Nvidia. Fornisce una qualità di occlusione ambientale superiore a quella di HBAO, ma al costo di essere più pesante in termini di risorse, anche tenendo conto della media delle GPU di oggi. Per utilizzare appieno questo tipo di occlusione ambientale, è necessario disporre delle GPU più avanzate disponibili. Quando è abilitata, tuttavia, si vedrà sicuramente la differenza.
GI o Global Illumination – questo tipo di AO non è ancora stato utilizzato nei videogiochi. Ma sapendo come la tecnologia progredisce, lo vedremo sicuramente nel corso della nostra vita. Ecco come si fa l’illuminazione fotorealistica. GI tiene conto di tutte le fonti di luce presenti nella scena, e di come ognuna di esse influisce sui numerosi oggetti presenti. Per questo motivo, l’illuminazione è vicina, se non già, esattamente la stessa del mondo reale. Luci e ombre realistiche che fanno apparire qualsiasi cosa nella scena esattamente come le loro controparti del mondo reale. A meno che, naturalmente, non siano modellati o realizzati in modo chiaramente irrealistico.
Ambient Occlusion fa davvero la differenza nei videogiochi?
Con il modo in cui viene descritta Ambient Occlusion, sembra che l’AO sia l’ingrediente chiave per rendere i videogiochi molto realistici. E in molti casi lo è. Tuttavia, se avete giocato a molti videogiochi negli ultimi anni, noterete che non molti giochi, ad eccezione dei titoli con la tripla A, includono l’AO o le sue varianti. Perché me lo chiedete?
Il fatto è che, anche se AO non richiede alcuna potenza di elaborazione della CPU e non richiede risorse, Ambient Occlusion è molto pesante per la GPU. Ora potreste pensare: “il mio PC può gestire qualsiasi cosa, sicuramente il PC di tutti gli altri lo può fare? Ma non tutti avranno le stesse GPU, avranno la tecnologia più all’avanguardia e il software più recente. E le aziende di videogiochi penseranno al risultato finale, noto anche come vendita dei loro giochi a quante più persone possibile.
Se un gioco è troppo pesante per l’hardware, potrebbe non vendere altrettanto bene. E questa è in realtà una delle principali lamentele che sia i critici che i giocatori hanno fatto su Crysis. Al momento della sua uscita, il giocatore medio per PC non riusciva nemmeno a farlo funzionare senza perdita di framerate o un calo di qualità o qualcosa del genere.
Ora, supponiamo di essere in grado di attivare Ambient Occlusion senza effetti collaterali negativi. L’impatto è davvero evidente? Beh, la risposta breve è che dipende.
Questo perché dipende anche da come lo sviluppatore del gioco ha implementato Ambient Occlusion nel suo gioco. Fatto correttamente, l’effetto è quasi immediato una volta che si attivano le impostazioni. Lo si nota soprattutto quando gli oggetti sono posizionati uno vicino all’altro, come l’erba e gli elementi della vegetazione, o quando gli oggetti sono vicini a pareti, soffitti o pavimenti. Se siete dei giocatori molto visivi, allora questo è qualcosa che apprezzerete molto.
Fatto in modo errato, tuttavia, noterete a malapena la differenza visiva. Ma sentirete sicuramente il calo delle prestazioni sotto forma di fps più bassi o di ritardo. E se è così, allora che senso ha lasciarlo acceso, giusto?
In alcuni casi, è una via di mezzo tra i due. Certo, si può vedere -qualcosa – la differenza, ma potrebbe non essere abbastanza significativa a lungo termine da giustificare un possibile calo delle prestazioni. Quando ciò accade, allora è solo un caso tra qualità visiva e prestazioni. E se sei un giocatore serio, è probabile che sceglierai la performance.
Ma c’è un’altra ragione per cui Ambient Occlusion non è così diffusa o inclusa in molti giochi. E questo perché ci sono alternative ad essa che producono risultati molto simili senza gli effetti collaterali delle prestazioni.
Alternativa all’ambient occlusion
Una delle alternative più popolari all’ambient occlusion è la bloom lighting, utilizzata da giochi popolari come Skyrim. Per dirla in parole povere, la bloom lighting è una riproduzione creata artificialmente di un artefatto visivo che le telecamere del mondo reale producono quando ricevono la luce. È come un soffice bagliore (da cui deriva una “fioritura”) che le aree luminose di una scena producono. Questo prende il sopravvento sulla macchina fotografica ed è evidente nei film, negli spettacoli televisivi e persino nei video registrati in casa con videocamere o videocamere per cellulari. Ha guadagnato terreno nei videogiochi già nel 2004 e da allora è presente in molti videogiochi.
L’effetto di illuminazione della fioritura fa sì che la luce di una porzione luminosa di una scena “sanguini” in altri elementi visibili della scena dal punto di vista della telecamera. L’occhio umano riconosce questo come un effetto realistico che abbiamo visto e sperimentato in precedenza, e lo elabora come un’illuminazione realistica nel nostro cervello. Quindi, anche se l’ombreggiamento prodotto dalAmbient Occlusion non esiste in una scena, l’effetto di fioritura compensa per dare l’effetto realistico “immersivo”.
La parte migliore? L’illuminazione di Bloom occupa pochissima potenza di elaborazione della GPU, o al massimo, non è vicina a ciò che l’ambient occlusion richiederà a una scheda grafica. Per questo motivo è diventato un effetto visivo popolare per molti giochi dal 2004, tra cui titoli di tripla A come Elder Scrolls IV: Oblivion e Elder Scrolls V: Skyrim, così come la serie Fallout, e altro ancora.
Se Ambient Occlusion non vale la pena o fa ben poco, dovresti anche considerare di accenderla quando giochi?
Dovresti accendere Ambient Occlusion nel mio gioco?
Dopo averne parlato ancora, sembra che ci siano più contro che pro quando si parla di ambient occlusion nei videogiochi, giusto? Quindi, se è così, dovresti anche attivare l’ambient occlusion? Se tutto quello che otterrete è un miglioramento visivo minimo per molte risorse, allora non ne vale la pena, giusto?
La risposta breve è, ancora una volta, dipende. Se la vostra GPU è in grado di gestirla con un calo di prestazioni minimo o nullo, allora attivare Ambient Occlusion è sicuramente un’opzione, soprattutto se volete migliorare la vostra qualità visiva. Dipende anche se il gioco lo fa bene o no. Se lo fa, allora vale la pena di perdere un po’ di prestazioni per la qualità visiva. E se non lo fa bene, allora è meglio lasciarlo spento. L’unico modo per scoprirlo è accendere la funzione e verificare di persona.