Tecniche comuni per migliorare le mappe di profondità delle ombreggiature

Le mappe ombreggiate, introdotte per la prima volta nel 1978, sono una tecnica comune per l'aggiunta di ombre ai giochi. Tre decenni dopo, nonostante i progressi nell'hardware e nel software, gli artefatti ombreggiatura, ovvero bordi scintillanti, alias prospettica e altri problemi di precisione, persistono.

Questo articolo tecnico offre una panoramica di alcuni algoritmi comuni di mappe di profondità ombreggiatura e artefatti comuni e illustra diverse tecniche, che vanno dalla difficoltà di base a quella intermedia, che possono essere usate per aumentare la qualità delle mappe ombreggiature standard. L'aggiunta di mappe shadow di base a un titolo è in genere semplice, ma la comprensione delle sfumature degli artefatti ombreggiatura può essere complessa. Questo articolo tecnico è scritto per lo sviluppatore di grafica intermedio che ha implementato le ombreggiature, ma non comprende completamente il motivo per cui vengono visualizzati elementi specifici e non è sicuro come risolverli.

La selezione delle tecniche corrette per attenuare gli artefatti specifici non ètriziale. Quando vengono risolte le carenze della mappa ombreggiatura, la differenza nella qualità può essere impressionante (figura 1). L'implementazione corretta di queste tecniche migliora drasticamente le ombreggiature standard. Le tecniche illustrate in questo articolo vengono implementate nell'esempio CascadedShadowMaps11 in DirectX SDK.

Figura 1. Ombreggiature con artefatti gravi (a sinistra) e ombreggiature dopo l'implementazione delle tecniche descritte in questo articolo (a destra)

ombreggiature con artefatti gravi (a sinistra) e ombreggiature dopo l'implementazione delle tecniche descritte in questo articolo (a destra)

Revisione delle mappe di profondità ombreggiatura

L'algoritmo della mappa di profondità ombreggiatura è un algoritmo a due passaggi. Il primo passaggio genera una mappa di profondità nello spazio chiaro. Nel secondo passaggio, questa mappa viene usata per confrontare la profondità di ogni pixel nello spazio leggero rispetto alla profondità corrispondente nella mappa della profondità dello spazio leggero.

Figura 2. Parti chiave di una scena shadow

parti chiave di una scena ombreggiatura

Passaggio 1

La scena è illustrata nella figura 2. Nel primo passaggio (Figura 3), il rendering della geometria viene eseguito in un buffer di profondità dal punto di vista della luce. In particolare, il vertex shader trasforma la geometria in uno spazio di visualizzazione della luce.

Il risultato finale di questo primo passaggio è un buffer di profondità contenente le informazioni di profondità della scena dal punto di vista della luce. Questo ora può essere usato in passaggio 2 per determinare quali pixel sono occlusi dalla luce.

Figura 3. Primo passaggio del mapping delle ombreggiature di base

primo passaggio del mapping delle ombreggiature di base

Passaggio 2

Nel secondo passaggio (Figura 4) il vertex shader trasforma ogni vertice due volte. Ogni vertice viene trasformato nello spazio di visualizzazione della fotocamera e passato al pixel shader come posizione. Ogni vertice viene trasformato anche dalla matrice view-projection-texture della luce e passata al pixel shader come coordinata della trama. La matrice view-projection-texture è la stessa matrice usata per eseguire il rendering della scena in passaggio 1 con una trasformazione aggiuntiva. Si tratta di una trasformazione che ridimensiona e converte i punti dallo spazio di visualizzazione (-1 a 1 in X e Y) allo spazio trama (da 0 a 1 in X e da 1 a 0 in Y).

Il pixel shader riceve la posizione interpolata e le coordinate della trama interpolate. Tutto ciò che serve per eseguire il test di profondità è ora in questa coordinata della trama. Il test di profondità può ora essere eseguito indicizzando il buffer di profondità dal primo passaggio con le coordinate della trama X e Y e confrontando il valore di profondità risultante con la coordinata della trama Z.

Figura 4. Secondo passaggio del mapping delle ombreggiature di base

secondo passaggio del mapping di base delle ombreggiature

Elementi della mappa shadow

L'algoritmo della mappa di profondità ombreggiatura è l'algoritmo di ombreggiatura in tempo reale più diffuso, ma produce ancora diversi artefatti che richiedono la mitigazione. I tipi di artefatti che possono verificarsi vengono riepilogati successivamente.

Aliasing prospettica

L'aliasing prospettica, un artefatto comune, è illustrato nella figura 5. Si verifica quando il mapping di pixel nello spazio di visualizzazione ai texel nella mappa shadow non è un rapporto uno-a-uno. Ciò è dovuto al fatto che i pixel vicini al piano vicino si avvicinano e richiedono una risoluzione più elevata della mappa delle ombreggiature.

La figura 6 mostra una mappa ombreggiatura e un frustum di visualizzazione. Vicino all'occhio, i pixel sono più vicini e molti pixel mappano agli stessi texel ombreggiatura. I pixel del piano lontano vengono distribuiti, riducendo così l'aliasing prospettica.

Figura 5. Aliasing con prospettiva elevata (a sinistra) e aliasing con prospettiva bassa (destra)

aliasing con prospettiva alta (sinistra) e aliasing con prospettiva bassa (destra)

Per l'immagine a sinistra, l'aliasing prospettica è superiore; Troppi pixel di spazio oculare mappano agli stessi texel della mappa ombreggiatura. Nell'immagine a destra, l'aliasing prospettica è basso perché esiste un mapping 1:1 tra i pixel dello spazio oculare e i texel della mappa shadow.

Figura 6. Visualizzare frustum con mappa ombreggiatura

visualizzare frustum con mappa ombreggiatura

I pixel di luce nel piano lontano rappresentano aliasing con prospettiva bassa e i pixel scuri nel piano vicino rappresentano alias di prospettiva alta.

La risoluzione della mappa shadow può anche essere troppo elevata. Anche se una risoluzione più elevata è meno evidente, tuttavia può comportare oggetti di piccole dimensioni, ad esempio cavi telefonici, senza gettare ombre. Inoltre, la presenza di una risoluzione troppo elevata può causare gravi problemi di prestazioni a causa dei modelli di accesso alle trame.

Le mappe shadow prospettiche (PSM) e le mappe shadow dello spazio chiaro (LSPSMs) tentano di risolvere l'aliasing prospettica asimmetrizzando la matrice di proiezione della luce per posizionare più texel vicino all'occhio dove sono necessari. Sfortunatamente, nessuna tecnica è in grado di risolvere l'aliasing prospettica. La parametrizzazione della trasformazione necessaria per eseguire il mapping dei pixel dello spazio oculare ai texel nella mappa ombreggiatura non può essere associata da un'asimmetria lineare. È necessaria una parametrizzazione logaritmica. I PSM mettono troppo dettagli vicino all'occhio, causando ombre distanti di bassa qualità o addirittura scomparire. LSPSM esegue un lavoro migliore per trovare un terreno intermedio tra la risoluzione crescente vicino all'occhio e lasciando abbastanza dettagli per gli oggetti lontano. Entrambe le tecniche degenerano per ombreggiature ortografiche in alcune configurazioni della scena. Questa generazione può essere contrastata eseguendo il rendering di una mappa ombreggiatura separata per ogni viso del frustum di visualizzazione, anche se questo è costoso. Anche le mappe shadow della prospettiva logaritmica (LogPSMs) eseguono il rendering di una mappa separata per ogni viso del frustum di visualizzazione. Questa tecnica usa la rasterizzazione non lineare per posizionare più texel vicino all'occhio. L'hardware di classe D3D10 e D3D11 non supporta la rasterizzazione non lineare. Per altre informazioni su queste tecniche e algoritmi, vedere la sezione Riferimenti.

Le mappe shadow a catena sono la tecnica più diffusa per gestire l'aliasing prospettica. Anche se i csm possono essere combinati con LE VM e gli LSPSM, non è necessario. L'uso di CSM per correggere gli errori di aliasing prospettica viene risolto nell'articolo complementare Mappe shadow cascaded.

Projective Aliasing

L'aliasing projective è più difficile da visualizzare rispetto all'aliasing prospettica. Le ombreggiature automatiche evidenziate nella figura 7 illustrano gli errori di aliasing proiettati. L'aliasing projectivo si verifica quando il mapping tra texel nello spazio della fotocamera ai texel nello spazio leggero non è un rapporto uno-a-uno; ciò è dovuto all'orientamento della geometria rispetto alla fotocamera della luce. L'aliasing projectivo si verifica quando il piano tangente della geometria diventa parallelo ai raggi luce.

Figura 7. Aliasing a progetto elevato e aliasing a basso progetto

aliasing high-projective e aliasing low-projective

Le tecniche usate per alleviare gli errori di aliasing prospettica attenuano anche l'aliasing proiettativo. L'aliasing projectivo si verifica quando la normale superficie è ortogonale alla luce; queste superfici dovrebbero ricevere meno luce in base alle equazioni di illuminazione diffusa.

Acne d'ombra e Self-Shadowing errata

L'acne shadow (Figura 8), un termine sinonimo di auto-ombreggiatura errata, si verifica quando la mappa ombreggiatura quantizza la profondità su un intero texel. Quando lo shader confronta una profondità effettiva rispetto a questo valore, è probabile che sia autoosombrato come è non oscurato.

Un altro motivo per l'acne dell'ombra è che il texel nello spazio leggero è così vicino alla profondità del texel corrispondente nella mappa di profondità che gli errori di precisione causano errori di profondità che causano erroneamente l'esito negativo del test di profondità. Un motivo per questa differenza di precisione è che la mappa di profondità è stata calcolata dall'hardware di rasterizzazione a funzione fissa, mentre la profondità confrontata è stata calcolata dallo shader. L'aliasing projectivo può anche causare l'acne dell'ombra.

Figura 8. Artefatto dell'acne shadow

artefatto dell'acne dell'ombra

Come illustrato nell'immagine a sinistra, alcuni pixel non hanno superato il test di profondità e creato elementi speckled e modelli moiré. Per ridurre l'auto-ombreggiatura errata, i limiti sul piano vicino e il piano lontano per la visualizzazione dello spazio chiaro frustum devono essere calcolati il più strettamente possibile. Il pregiudizio della profondità in base alla scala pendenza e altri tipi di distorsione sono altre soluzioni usate per attenuare l'acne dell'ombra.

Peter Panning

Il termine Peter Panning deriva il suo nome dal personaggio di un libro per bambini la cui ombra è stata scollegata e chi poteva volare. Questo artefatto rende gli oggetti con ombreggiature mancanti sembrano essere scollegati da e per fluttuare sopra la superficie (Figura 9).

Figura 9. Artefatto Peter Panning

artefatto peter panning

Nell'immagine a sinistra l'ombreggiatura viene scollegata dall'oggetto, creando un effetto mobile.

Una tecnica per rimuovere l'acne della superficie consiste nell'aggiungere un valore alla posizione pixel nello spazio chiaro; viene chiamato aggiunta di un offset di profondità. Peter Panning risultati quando l'offset di profondità usato è troppo grande. In questo caso l'offset di profondità causa il superamento errato del test di profondità. Come l'acne dell'ombra, Peter Panning è aggravato quando c'è precisione insufficiente nel buffer di profondità. Il calcolo di piani vicini e piani lontani aiuta anche a evitare Peter Panning.

Tecniche per migliorare le mappe shadow

L'aggiunta di ombreggiature a un titolo è un processo. Il primo passaggio consiste nel ottenere mappe shadow di base funzionanti. Il secondo è quello di garantire che tutti i calcoli di base vengano eseguiti in modo ottimale: frusta adattarsi il più strettamente possibile, i piani vicino/lontano si adattano strettamente, la distorsione a pendenza viene usata e così via. Dopo aver abilitato le ombreggiature di base e avere un aspetto ottimale, lo sviluppatore ha un'idea migliore di quali algoritmi sono necessari per ottenere le ombreggiature a una fedeltà sufficiente. Suggerimenti di base che potrebbero essere necessari per ottenere mappe ombreggiature di base esaminando i loro migliori sono forniti in questa sezione.

Slope-Scale distorsione della profondità

Come accennato in precedenza, l'auto-ombreggiatura può causare l'acne ombreggiatura. L'aggiunta di troppi pregiudizi può comportare Peter Panning. Inoltre, i poligoni con pendenza ripida (rispetto alla luce) soffrono più di aliasing projective rispetto ai poligoni con pendenza superficiale (rispetto alla luce). A causa di questo, ogni valore della mappa di profondità potrebbe richiedere un offset diverso a seconda della pendenza del poligono rispetto alla luce.

L'hardware Direct3D 10 ha la possibilità di pregiudiziare un poligono in base alla sua pendenza rispetto alla direzione di visualizzazione. Questo ha l'effetto di applicare un grande pregiudizio a un poligono visualizzato perimetrale alla direzione della luce, ma non applicando alcun pregiudizio a un poligono che si affaccia direttamente sulla luce. La figura 10 illustra il modo in cui due pixel adiacenti possono alternarsi tra ombreggiate e non ombreggiate durante il test sulla stessa pendenza non crittografata.

Figura 10. Distorsione della profondità in pendenza rispetto alla profondità non imparziale

distorsione della profondità in pendenza rispetto alla profondità non imparziale

Calcolo di una proiezione stretta

Adattando strettamente la proiezione della luce al frustum della vista aumenta la copertura della mappa ombreggiatura. La figura 11 illustra che l'uso di una proiezione arbitraria o l'adattamento della proiezione ai limiti della scena comporta un alias di prospettiva superiore.

Figura 11. Frustum e frustum ombreggiatura arbitraria adatta alla scena

ombreggiatura arbitraria frustum e frustum ombreggiatura adatta alla scena

La vista è dal punto di vista della luce. Il trapezoio rappresenta il frustum della fotocamera di visualizzazione. La griglia disegnata sull'immagine rappresenta la mappa ombreggiatura. L'immagine a destra mostra che la stessa mappa ombreggiatura di risoluzione crea una copertura più texel quando si adatta più strettamente alla scena.

La figura 12 illustra i frustum che sono adatti correttamente. Per calcolare la proiezione, gli otto punti che costituiscono il frustum di visualizzazione vengono trasformati in spazio chiaro. Vengono quindi trovati i valori minimi e massimi in X e Y. Questi valori costituiscono i limiti per una proiezione ortografica.

Figura 12. Proiezione ombreggiatura adatta per visualizzare frustum

Proiezione ombreggiatura adatta alla visualizzazione del frustum

È anche possibile ritagliare il frustum alla scena AABB per ottenere un limite più stretto. Questo non è consigliabile in tutti i casi perché questo può modificare le dimensioni della proiezione della fotocamera leggera dal fotogramma al fotogramma. Molte tecniche, ad esempio quelle descritte nella sezione Spostamento della luce Texel-Sized incrementi, danno risultati migliori quando le dimensioni della proiezione della luce rimangono costanti in ogni fotogramma.

Calcolo del piano vicino e del piano lontano

Il piano vicino e il piano lontano sono i pezzi finali necessari per calcolare la matrice di proiezione. Più strettamente insieme i piani sono, i valori più precisi nel buffer di profondità.

Il buffer di profondità può essere a 16 bit, a 24 bit o a 32 bit, con valori compresi tra 0 e 1. In genere, i buffer di profondità sono fissi, con i valori vicini al piano vicino raggruppato più strettamente rispetto ai valori vicini al piano lontano. Il grado di precisione disponibile per il buffer di profondità è determinato dal rapporto del piano vicino al piano lontano. L'uso del piano vicino/lontano più stretto possibile può consentire l'uso di un buffer di profondità a 16 bit. Un buffer di profondità a 16 bit potrebbe ridurre l'uso della memoria aumentando la velocità di elaborazione.

AABB-Based piano vicino e aereo lontano

Un modo facile e ingenuo per calcolare il piano vicino e lontano è trasformare il volume di delimitazione della scena in spazio chiaro. Il valore di coordinata Z più piccolo è il piano vicino e il valore di coordinata Z più grande è il piano lontano. Per molte configurazioni della scena e della luce, questo approccio è sufficiente. Lo scenario peggiore, tuttavia, può causare una perdita significativa di precisione nel buffer di profondità; La figura 13 mostra uno scenario simile. Qui l'intervallo del piano vicino al piano lontano è quattro volte maggiore del necessario.

La visualizzazione frustum nella figura 13 è stata scelta appositamente per essere piccola. Una piccola vista frustum è mostrata in una scena molto grande costituita da pilastri che si estendono dalla fotocamera di visualizzazione. L'uso di Scene AABB per i piani vicini e lontani non è ottimale. L'algoritmo CSM descritto nell'articolo tecnico di Shadow Maps cascaded deve calcolare piani vicini e lontani per frustum molto piccoli.

Figura 13. Aereo vicino e lontano basato su Scene AABB

aereo vicino e lontano basato sulla scena aabb

Frustum-Based piano vicino e aereo lontano

Un'altra tecnica per calcolare i piani vicini e lontani consiste nel trasformare il frustum nello spazio chiaro e utilizzare rispettivamente i valori minimi e massimi in Z come i piani vicini e i piani lontani. La figura 14 illustra i due problemi relativi a questo approccio. Innanzitutto, il calcolo è troppo conservativo, come illustrato quando il frustum si estende oltre la geometria della scena. In secondo luogo, il piano vicino potrebbe essere troppo stretto, causando il ritaglio dei casti ombreggiatura.

Figura 14. Piani vicino e lontano basati esclusivamente sulla visualizzazione frustum

aereo vicino e lontano basato esclusivamente sulla visualizzazione frustum

Luce frustum intersecata con scena per calcolare piani vicini e lontani

Il modo appropriato per calcolare i piani vicini e lontani è illustrato nella figura 15. Quattro dei piani della luce ortografica frustum sono stati calcolati usando le coordinate minime e massime delle coordinate X e Y del frustum di visualizzazione nello spazio chiaro. Gli ultimi due piani della vista ortogonale frustum sono i piani vicini e i piani lontani. Per trovare questi piani, i limiti della scena vengono ritagliati contro i quattro piani di frustum leggeri noti. I valori Z più piccoli e più grandi del limite appena ritagliato rappresentano rispettivamente il piano vicino e il piano lontano.

Il codice che esegue questa operazione si trova nell'esempio CascadedShadowMaps11. Gli otto punti che costituiscono l'AABB del mondo vengono trasformati in spazio chiaro. La trasformazione dei punti nello spazio chiaro semplifica i test di ritaglio. I quattro piani noti del frustum chiaro possono ora essere rappresentati come linee. Le scene che delimitano il volume nello spazio chiaro possono essere rappresentate come sei quadrilateri. Questi 6 quadrilateri possono quindi essere trasformati in 12 triangoli per il ritaglio basato su triangoli. I triangoli vengono ritagliati sui piani noti del frustum di visualizzazione (queste sono linee orizzontali e verticali in X e Y nello spazio chiaro). Quando si trova un punto di intersezione in X e Y, il triangolo 3D viene ritagliato a quel punto. I valori minimi e massimi di tutti i triangoli ritagliati sono il piano vicino e il piano lontano. L'esempio CascadedShadowMaps11 illustra come eseguire questo ritaglio nella funzione ComputeNearAndFar .

Esistono due tecniche che possono essere usate per calcolare il più stretto possibile vicino e lontano piano. Queste tecniche non vengono visualizzate nell'esempio CascadedShadowMaps.

  • Anche i piani più vicini e lontani possono essere calcolati intersecando una gerarchia di una scena o di singoli oggetti in una scena contro il frustum chiaro. Questo sarebbe più complesso in modo computazionale. Sebbene non illustrato nell'esempio CascadedShadowMaps11, questa potrebbe essere una tecnica valida per alcuni riquadri.

  • Il piano lontano può essere calcolato prendendo il minimo di:

    • La profondità più grande della vista frustum nello spazio chiaro.
    • La profondità più grande dell'intersezione della visualizzazione frustum e la scena AABB.

Questo approccio può essere problematico quando viene usato con mappe shadow a catena in cui è possibile indicizzare all'esterno di un frustum di visualizzazione. In questo caso, la mappa ombreggiatura potrebbe non essere geometria.

Figura 15. Piani vicini e lontani in base all'intersezione dei quattro piani calcolati del frustum chiaro e della geometria di delimitazione della scena

piani vicini e lontani in base all'intersezione dei quattro piani calcolati del frustum chiaro e della geometria di delimitazione della scena

Spostamento della luce in Texel-Sized incrementi

Un artefatto comune nelle mappe ombreggiature è l'effetto bordo scintillante. Man mano che la fotocamera si sposta, i pixel lungo i bordi delle ombreggiature sono luminosi e scuri. Questo non può essere visto in immagini ancora, ma è molto evidente e distratto in tempo reale. La figura 16 evidenzia questo problema e la figura 17 mostra come devono essere visualizzati i bordi ombreggiatura.

L'errore del bordo di shimmering si verifica perché la matrice di proiezione della luce viene ricalcolata ogni volta che la fotocamera si sposta. Ciò crea differenze sottili nelle mappe ombreggiatura generate. Tutti i fattori seguenti possono influenzare la matrice creata per associare la scena.

  • Dimensioni della visualizzazione frustum
  • Orientamento della visualizzazione frustum
  • Posizione della luce
  • Posizione della fotocamera

Ogni volta che questa matrice cambia, i bordi delle ombreggiature potrebbero cambiare.

Figura 16. Bordi ombreggiatura scintillante

bordi ombreggiatura scintillante

I pixel lungo il bordo dell'ombreggiatura si trovano e fuori dall'ombra mentre la fotocamera si sposta da sinistra a destra.

Figura 17. Ombre senza bordi sfumato

ombre senza bordi sfumato

I bordi ombreggiatura rimangono costanti quando la fotocamera si sposta da sinistra a destra.

Per le luci direzionali, la soluzione a questo problema consiste nell'arrotondare il valore minimo/massimo in X e Y (che costituiscono i limiti di proiezione ortografica) alle dimensioni dei pixel. Questa operazione può essere eseguita con un'operazione di divisione, un'operazione di piano e una moltiplicazione.

        vLightCameraOrthographicMin /= vWorldUnitsPerTexel;
        vLightCameraOrthographicMin = XMVectorFloor( vLightCameraOrthographicMin );
        vLightCameraOrthographicMin *= vWorldUnitsPerTexel;
        vLightCameraOrthographicMax /= vWorldUnitsPerTexel;
        vLightCameraOrthographicMax = XMVectorFloor( vLightCameraOrthographicMax );
        vLightCameraOrthographicMax *= vWorldUnitsPerTexel;

Il valore vWorldUnitsPerTexel viene calcolato prendendo un limite del frustum della visualizzazione e suddividendo le dimensioni del buffer.

        FLOAT fWorldUnitsPerTexel = fCascadeBound /
        (float)m_CopyOfCascadeConfig.m_iBufferSize;
        vWorldUnitsPerTexel = XMVectorSet( fWorldUnitsPerTexel, fWorldUnitsPerTexel,                            0.0f, 0.0f );

L'associazione delle dimensioni massime della visualizzazione frustum comporta un adattamento più libero per la proiezione ortografica.

È importante notare che la trama è maggiore di 1 pixel in larghezza e altezza quando si usa questa tecnica. Ciò mantiene le coordinate shadow dall'indicizzazione all'esterno della mappa shadow.

Viso indietro e viso anteriore

È consigliabile eseguire il rendering delle mappe ombreggiature con il viso indietro standard, un processo che ignora la rasterizzazione di oggetti che il visualizzatore non può vedere e accelera il rendering della scena. Un'altra opzione comune consiste nel eseguire il rendering delle mappe ombreggiature con l'analisi anteriore abilitata, il che significa che gli oggetti che riguardano il visualizzatore vengono eliminati. L'argomento per questo è che consente di ombreggiatura automatica come la geometria che costituisce il back degli oggetti è leggermente offset. Ci sono due problemi con questa idea.

  • Qualsiasi oggetto con geometria anteriore o posteriore non corretta causa artefatti nella mappa ombreggiatura. Tuttavia, se la geometria anteriore o posteriore non corretta causerà altri problemi, quindi potrebbe essere sicuro presupporre che la geometria del viso anteriore e posteriore venga eseguita correttamente. Può essere impraticabile creare visi indietro per geometria basata su sprite, ad esempio fogliame.
  • Peter Panning e le lacune ombreggiate vicino alla base di oggetti come le pareti sono più probabile che si verifichino perché la disparità di profondità ombreggiatura è troppo piccola.

Mappa ombreggiatura- Geometria descrittiva

La creazione di geometria che funziona bene nelle mappe ombreggiate consente una maggiore flessibilità quando si combattono artefatti come Peter Panning e acne ombreggiatura.

I bordi rigidi sono problematici per l'ombreggiatura automatica. La disparità di profondità vicino alla punta del bordo è molto piccola. Anche un piccolo offset può causare la perdita delle ombreggiature degli oggetti (Figura 18).

Figura 18. I bordi nitidi causano artefatti derivanti dalla disparità di profondità bassa con offset

i bordi nitidi causano artefatti derivanti dalla disparità di profondità bassa con offset

Gli oggetti stretti, ad esempio le pareti, devono avere retro anche se non sono mai visibili. Ciò aumenterà la disparità di profondità.

È anche importante assicurarsi che la direzione in cui si trova la geometria sia corretta; ovvero, l'esterno di un oggetto deve essere di fronte a un oggetto e l'interno di un oggetto deve essere anteriore. Questo è importante per il rendering con la culling sul retro abilitato, nonché per combattere gli effetti della distorsione della profondità.

Riepilogo

Le tecniche descritte in questo articolo possono essere usate per aumentare la qualità delle mappe shadow standard. Il passaggio successivo consiste nell'esaminare le tecniche che possono funzionare bene con mappe ombreggiature standard. Le macchine virtuali sono consigliate come tecnica superiore per combattere l'aliasing della prospettiva. La percentuale di filtro più vicino o le mappe ombreggiature di varianza può essere usata per ammorbidire i bordi dell'ombreggiatura. Per altre informazioni, vedere l'articolo tecnico di Mappe shadow cascaded .

Donnelly, W., e Lauritzen, A. Variance Shadow Maps. Simposio sulla grafica 3D interattiva, atti del simposio 2006 sulla grafica e i giochi interattivi 3D. 2006, pp. 161-165.

Engel, Woflgang F. Sezione 4. Mappe ombreggiate a cascata. ShaderX5, Tecniche avanzate di rendering, Wolfgang F. Engel, Ed. Charles River Media, Boston, Massachusetts. 2006. pp. 197-206.

Stamminger, Marc e Drettakis, George. Mappe shadow della prospettiva. Conferenza internazionale sulla grafica artificiale e sulle tecniche interattive, atti della 29° conferenza annuale sulla grafica artificiale e sulle tecniche interattive. 2002, pp 557-562.

Wimmer, M., Scherzer, D.e Purgathofer, W. Light Space Perspective Shadow Maps. Simposio eurografico sul rendering. 2004. 10 giugno 2005. Technische Universität Wien.