Come viene implementata la profondità di campo?


10

So che la profondità di campo comporta la sfocatura.

Ci sono alcune grandi informazioni su come eseguire una sfocatura gaussiana nella domanda Come viene implementata la sfocatura gaussiana?

Ma, a parte questo, come viene implementata la profondità di campo?

Quali sono le regole su come offuscare ogni pixel e come gestite il caso in cui un pixel vuole offuscare molto accanto a un pixel che non vuole offuscare tanto?

Ho anche sentito parlare del "circolo della confusione" ma non ho idea di cosa sia.

Qualcuno può spiegare DOF in modo semplice e comprensibile?

Risposte:


20

La profondità di campo è una caratteristica di un'impostazione dell'obiettivo della fotocamera, sebbene il nome "Profondità di campo" sia comunemente usato per descrivere l'effetto causato da tale caratteristica.

Gli obiettivi della fotocamera possono mettere a fuoco perfettamente solo su un singolo punto, ma esiste una distanza per cui l'immagine apparirà ancora ragionevolmente nitida. Tale distanza è ciò che effettivamente è la profondità di campo. Questa distanza è variabile a seconda di vari fattori, ma per brevità diciamo che il modo più semplice per regolarla è cambiare l'apertura della fotocamera.

inserisci qui la descrizione dell'immagine

Per quanto riguarda il circolo di confusione, è utile guardare una foto di Wikipedia:

inserisci qui la descrizione dell'immagine

In tutti e tre i casi, un singolo punto viene "proiettato" sul nostro piano immagine, ma come potete vedere, questo è a distanze diverse dall'obiettivo.

Fondamentalmente perché, come ho detto, non tutto è perfettamente a fuoco (ovvero il punto focale si trova sul piano dell'immagine), un punto può essere proiettato sul nostro piano immagine non su un singolo punto ma su un'area. Questo, come risulta dalla foto, è perché il punto focale è prima o dopo il piano dell'immagine. Questo "cerchio" che viene creato sul piano dell'immagine è quello che viene chiamato il cerchio della confusione.

Ora da questo dovrebbe essere chiaro che variando la profondità di campo si varia la dimensione del CoC, quindi può essere usato come una misura del DoF stesso e intuitivo quando si pensa in termini di sfocatura.

Per quanto riguarda il modo in cui è implementato nel rendering, ci sono davvero molti metodi là fuori. Di solito nei giochi viene eseguito un processo di post utilizzando le informazioni di profondità per dividere la scena in diversi "piani"; ad esempio un piano di messa a fuoco che non deve essere sfocato, un piano vicino e un piano lontano / di sfondo che devono essere sfocati. Una volta sfocati i tuoi aerei, puoi ricomporli per ottenere l'immagine finale. Quanto offuschi i vari piani dipende dall'effetto che vuoi ottenere. Il sistema avanzato di solito implementa questo e altri effetti "obiettivi" utilizzando parametri appropriati provenienti dal mondo della fotografia come l'apertura.

Nota che ci sono molti modi per implementare l'effetto, quello che ho descritto è solo un modo che ha anche delle variazioni (ad esempio eseguendo tutto a bassa risoluzione). Il limite dipende da quale sia il tuo obiettivo e da quanto hai preventivato per questo effetto. Puoi passare dall'adozione del metodo dei "3 piani" a una risoluzione estremamente bassa al calcolo del cerchio di confusione per ciascun pixel e dall'applicazione della conseguente sfocatura ad hoc a quel pixel.


EDIT: il commento di @NathanReed deve essere più evidente come parte della risposta:

I post del blog di Matt Pettineo How To Fake Bokeh e Bokeh II: The Sequel sono ottime introduzioni su come implementare praticamente DoF post-process e affrontare i tipici manufatti che ne derivano.


1
Un modo economico per farlo è semplicemente usare la sfocatura gaussiana sulla scena finale e memorizzarne due. Uno per il primo piano e uno per lo sfondo. Possono avere lo stesso livello di sfocatura o diverso e dipende da te. Al termine della sfocatura, passare semplicemente dalla profondità 0 a una profondità determinata (e ottimizzabile) (ad esempio 0,10). Quello che stai imparando è questa scena sfocata per la scena perfettamente focalizzata. Per la sfocatura dello sfondo puoi semplicemente fare lo stesso, tranne che stai sfocando dalla messa a fuoco perfetta all'immagine sfocata. Lascia un po 'di spazio per il centro per creare un'area perfettamente a fuoco.
ChaoSXDemon il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.