Espandendo la risposta corretta di TomTsagk, ho pensato che potesse aiutare a descrivere un po 'di più il motivo per cui i giochi funzionano così.
La luce nei giochi non "viaggia" realmente dalla sorgente, alla superficie, alla telecamera, restando ostruita lungo il percorso.
Per capire quanto sia luminoso disegnare ogni pixel di una superficie in base a una data luce, usiamo (o approssimativo) una formula matematica che utilizza la direzione del rivestimento della superficie e la direzione da questo punto sulla superficie alla sorgente luminosa. Questo è tutto, proprio dalla direzione da cui brilla: in genere non lanciamo un raggio per verificare se la luce raggiunge effettivamente questo pixel, perché farlo per ogni pixel sullo schermo e controllare il raggio contro tutta la geometria dettagliata nella scena è di solito è ancora troppo costoso per i giochi in tempo reale.
Quindi, per impostazione predefinita, nessuna luce di gioco genera ombre. La direzione verso una luce rimane invariata anche se c'è un shadowcaster sulla strada, quindi la matematica ci dà lo stesso valore di luminosità.
Se vogliamo simulare le ombre, dobbiamo farlo separatamente. Un modo comune è quello che viene chiamato Shadow Map. In questa versione, prima di oscurare la scena, rendiamo la scena dal punto di vista di ogni luce, come se quella luce fosse una videocamera, memorizzando la profondità di ogni pixel che vede in una trama fuori schermo.
Quindi, quando ombreggiamo la scena, possiamo confrontare la distanza matematica di questo pixel dalla sorgente luminosa rispetto alla profondità registrata nel pixel corrispondente nella mappa dell'ombra. Se la profondità della mappa delle ombre è più piccola, significa che c'è un'altra superficie tra qui e la luce e disegniamo invece questo pixel nell'ombra.
Ci sono molte tecniche interessanti per rendere queste ombre basate su mappe più belle, con meno artefatti / aliasing, ma per ora le cercherò. Basti dire che in genere non sono nemmeno liberi.
Perché questo richiede il rendering (fino a) di nuovo dell'intera scena dalla prospettiva di ogni luce - fino a sei volte se è una luce di punto che brilla in tutte le direzioni {nord, sud, est, ovest, su, giù}, e dobbiamo ri -rendering della mappa ombra ogni volta che qualcosa si muove, questo può diventare molto costoso.
Quindi i giochi concentreranno spesso il loro budget di rendering sulle luci più importanti della scena - come la luce solare direzionale - per garantire che abbiano delle belle ombre. Le luci piccole, di breve durata, come il lampo di un'esplosione sono spesso perdonabili se passano un po 'oltre gli occludenti. Spesso questo è più appetibile per i giocatori di un intoppo nel framerate a causa di un improvviso aumento del costo di rendering da tutto il rendering e il calcolo della mappa ombra extra. Soprattutto se si tratta di una scena d'azione frenetica in cui la fluidità conta più della perfezione dei pixel.