Perché l'ombreggiatura è lo standard?


41

Sebbene io sia un programmatore di professione, ho appena toccato lo sviluppo del gioco. Ho avuto questa domanda da un po 'di tempo, e ora che sto esaminando lo sviluppo del gioco ho pensato che sarebbe stato un buon momento chiedere.

Perché la mappatura delle ombre sembra essere il modo esclusivo in cui i giochi usano le ombre? Ad essere sinceri, sembra terribile. Anche i giochi moderni con impostazioni dell'ombra al massimo hanno ombre frastagliate che sono molto distruttive.

Doom 3, realizzato 11 anni fa, utilizzava volumi shadow che sembravano molto migliori di qualsiasi implementazione di mappe shadow che io abbia mai visto, inclusi i giochi AAA rilasciati nella stessa settimana in cui questa domanda è stata pubblicata. Le mod di terze parti per Doom 3 hanno persino ammorbidito i bordi delle ombre, rendendole ancora più visivamente impressionanti.

C'è qualche tipo di problema tecnico o limitazione nell'implementazione di cose come i volumi ombra? Le mappe d'ombra sono così facili da implementare che gli sviluppatori non prendono in considerazione nient'altro?

L'unica informazione che sono riuscita a trovare sull'argomento è che i poligoni che compongono i volumi possono essere piuttosto grandi, diventando più esigenti. Forse i volumi ombra hanno requisiti di sistema molto più elevati, ma se è così, come sono riusciti a cavarsela nel 2004?

Questa domanda non è specifica per la mappatura delle ombre rispetto ai volumi delle ombre, sono semplicemente gli unici 2 che ho visto utilizzati in prodotti completi e non sono stato in grado di trovare molte informazioni su altre tecniche.


3
Solo una nota: Doom 3 è stato estremamente impegnativo per i suoi tempi, ed è ancora instabile anche su alcuni sistemi moderni (e non sto parlando di GPU integrate, anche se qui non sarebbe davvero inappropriato; certo, è molto probabile a causa della sua età, ma ...). E l'ho visto funzionare su molti computer in cui le ombre e l'illuminazione semplicemente non funzionavano . Ovviamente, ci sono molte complessità che mettono in ombra le ombre proprio in un gioco, e Doom 3 è un bell'esempio di quanto la grafica realistica sia dura su una pletora di configurazioni di computer.
Luaan,

1
Doom 3 era in anticipo sui tempi quando iniziò lo sviluppo (almeno data la scelta dell'API grafica). Aveva diversi backend per gestire generazioni di pre-Shader Model 2.0 hardware e ciò significava che circa 1/4 del motore era a malapena portatile (precede anche GLSL) e i restanti 3/4 sono codici per estensioni hardware NV e ATI antiche che erano irrilevanti al momento della spedizione del gioco. La scelta dei volumi di stencil-shadow era forse il minore dei suoi problemi.
Andon M. Coleman,

Risposte:


48

La mappatura delle ombre e le ombre degli stencil (volumi delle ombre) sono sicuramente i due principali, come hai già detto, quindi mi limiterò a confrontare i due. E dal momento che hai sottolineato i più ovvi difetti della mappatura delle ombre e dei vantaggi delle ombre stencil, farò il contrario.

Difetti dell'ombra dello stencil

  1. Le ombre corrispondono alla forma della maglia di fusione. Questo è molto limitante ed è probabilmente il motivo tecnico più grande per non usare le ombre stencil . Le foglie degli alberi, i cespugli, i recinti di filo metallico, gli strappi nella stoffa e altri elementi di gioco diffusi nell'ombra usano la trasparenza alfa per definire la forma dell'oggetto. Ma poiché le ombre dello stencil corrispondono alla mesh e non strettamente alle parti visibili della trama sulla mesh, non possono essere utilizzate per tali oggetti. Ad esempio, un grappolo di foglie in un albero sarà di solito una trama di un grappolo di foglie su un quad. Le ombre dello stencil sarebbero solo in grado di mostrare l'ombra del quad stesso (e avrà problemi con quello poiché un quad non è una mesh chiusa, ma questo è un dettaglio minore che salterò per questa risposta, in quanto è generalmente in grado di funzionare).
  2. Non riesco a fare ombre morbide precise. Hai sottolineato che Doom 3 è stato modificato per consentire ombre morbide. Questa versione qui , almeno, utilizza la mappatura delle ombre per le ombre morbide. Ho anche visto tecniche di spazio sullo schermo per ammorbidire le ombre dure, ma sono inclini a tutti i tipi di problemi.
  3. Impossibile fare ombre su oggetti trasparenti. Ci sono soluzioni alternative per questo: renderizzare le ombre per oggetti trasparenti in passaggi separati e comporle successivamente. Ma oltre soluzioni difficili, la natura delle ombre stencil è tale che ogni pixel sullo schermo si sia in ombra o meno. Questo è anche il motivo per cui non ci sono ombre morbide come menzionato prima.
  4. L'implementazione generalmente preferita e più robusta delle ombre dello stencil, spesso chiamata "Carmack's Reverse", è in realtà brevettata, come sottolineato da Angew nei commenti. (Non brevettato da Carmack; ha dovuto aggirare il problema per la versione open source di Doom 3)

A favore della mappatura dell'ombra

Oltre ad essere senza le limitazioni che ho elencato specificamente per le ombre dello stencil, ci sono alcuni vantaggi extra nella mappatura delle ombre:

  1. Scalabilità. Mentre la mappatura delle ombre non è né economica né perfetta ( ndr: ma le ombre dello stencil non sono neanche economiche ), è relativamente facile scambiare la fedeltà con le prestazioni cambiando la risoluzione delle mappe delle ombre o il filtro per le ombre. Ciò rende relativamente semplice la messa a punto della qualità / prestazione dell'ombra per diversi sistemi. Come hai sottolineato, spesso questo non è perfetto, ma molto dipenderà dalla percettività del giocatore e dalla risoluzione a cui stanno giocando (una risoluzione dello schermo più alta renderà più facile vedere il blocco dell'ombra Mappatura). Alcuni giochi AAA (come Fracture ) fanno un lavoro straordinario con la mappatura delle ombre semplicemente selezionando i filtri giusti e regolando le manopole giuste, mentre molti lo schiaffeggiano e dicono "abbastanza bene".
  2. Biscotti (ombre strutturate): aggiungi la trama di un faretto o di un vetro colorato e puoi emulare ogni sorta di sorgente luminosa del mondo reale. Questo è fattibile anche con le ombre dello stencil, ma implica comunque quasi tutta la configurazione della mappatura dell'ombra (le stesse matrici di proiezione usate per proiettare la trama della luce sugli oggetti sono quelle usate per la mappatura dell'ombra).
  3. Ombre trasparenti: la maggior parte dei giochi non ci tenta molto, ma le ombre trasparenti sono possibili con la mappatura delle ombre. Non intendo solo ritagli alfa come alberi e recinzioni come ho detto prima, ma intendo ombre parzialmente trasparenti, come da fumo e polvere.

Nessuna di queste liste è esaustiva.

Quindi, mentre le tue osservazioni sulla mappatura dell'ombra e sulle ombre dello stencil sono corrette, i difetti delle ombre dello stencil sono fermi per molti effetti desiderabili e la mappatura dell'ombra presenta alcuni vantaggi.


1
Ahhh, non sono riuscito a considerare la maggior parte di queste cose e le trame trasparenti come le foglie sono un problema abbastanza importante. Grazie per la risposta!
gnoblin,

1
Nessun problema :) Alcuni di questi sono facili da perdere!
Jibb Smart

8
Direi che un ulteriore problema con i volumi di ombra è che il passaggio di profondità non piace alla telecamera che si trova all'interno dell'ombra e che il fallimento di profondità è brevettato.
Ripristina Monica il

Buon punto, Angew. L'ho aggiunto ai motivi per non usare le ombre degli stencil e ho chiarito il motivo principale per non usare le ombre degli stencil come "il più grande motivo tecnico " per non usarli, poiché il problema dei brevetti potrebbe essere di per sé un ostacolo allo spettacolo.
Jibb Smart
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.