En développant la bonne réponse de TomTsagk, j'ai pensé que cela pourrait aider à décrire un peu plus pourquoi les jeux fonctionnent comme ça.
La lumière dans les jeux ne "voyage" pas vraiment de la source, à la surface, à la caméra, s'obstruant en cours de route.
Pour déterminer la luminosité de chaque pixel d'une surface en fonction d'une lumière donnée, nous utilisons (ou approximons) une formule mathématique qui utilise la direction opposée de la surface et la direction à partir de ce point de la surface vers la source de lumière. C'est tout, juste la direction dans laquelle il brille - nous ne jetons généralement pas de rayon pour vérifier si la lumière atteint réellement ce pixel, car le faire pour chaque pixel de l'écran et vérifier le rayon par rapport à toute la géométrie détaillée de la scène est généralement encore trop cher pour les jeux en temps réel.
Ainsi, par défaut, aucune lumière de jeu ne projette d'ombres. La direction vers une lumière reste la même, même s'il y a un shadowcaster, donc les calculs nous donnent la même valeur de luminosité.
Si nous voulons simuler des ombres, nous devons le faire séparément. Une méthode courante consiste à utiliser ce qu'on appelle une carte fantôme. Dans cette version, avant d'ombrer notre scène, nous rendons d'abord la scène du point de vue de chaque lumière, comme si cette lumière était une caméra, stockant la profondeur de chaque pixel qu'elle voit dans une texture hors écran.
Ensuite, lorsque nous ombrons la scène, nous pouvons comparer la distance mathématique de ce pixel de la source de lumière par rapport à la profondeur que nous avons enregistrée au pixel correspondant dans la carte d'ombre. Si la profondeur de la carte d'ombre est plus petite, cela signifie qu'il y a une autre surface entre ici et la lumière, et nous dessinons ce pixel dans l'ombre à la place.
Il y a beaucoup de techniques intéressantes pour rendre ces ombres basées sur une carte plus belles, avec moins d'artefacts / alias, mais je vais les passer en revue pour l'instant. Il suffit de dire qu'ils ne sont généralement pas gratuits non plus.
Parce que cela nécessite de restituer (jusqu'à) toute la scène à partir de la perspective de chaque lumière - jusqu'à six fois s'il s'agit d'une lumière ponctuelle qui brille dans toutes les directions {nord, sud, est, ouest, haut, bas}, et nous devons re -Rendre la carte fantôme chaque fois que quelque chose bouge, cela peut devenir très cher.
Ainsi, les jeux concentrent souvent leur budget de rendu sur les lumières les plus importantes de la scène - comme la lumière solaire directionnelle - pour s'assurer qu'elles ont de belles ombres. Les petites lumières de courte durée et mineures comme le flash d'une explosion sont souvent pardonnables si elles s'échappent un peu des occluseurs. Souvent, cela est plus agréable pour les joueurs qu'un accroc dans le framerate en raison d'une augmentation soudaine du coût de rendu de tout le rendu et du calcul de la carte d'ombre supplémentaire. Surtout s'il s'agit d'une scène d'action occupée où la fluidité importe plus que la perfection des pixels.