Rozwijając poprawną odpowiedź TomTsagk, pomyślałem, że może pomóc trochę lepiej opisać, dlaczego gry działają w ten sposób.
Światło w grach tak naprawdę nie „przemieszcza się” ze źródła, na powierzchnię, do kamery, przeszkadzając po drodze.
Aby dowiedzieć się, jak jasno rysować każdy piksel powierzchni w oparciu o dane światło, używamy (lub w przybliżeniu) wzoru matematycznego, który wykorzystuje skierowany w kierunku powierzchni i kierunek od tego punktu na powierzchni do źródła światła. To wszystko, tylko kierunek, z którego świeci - zwykle nie rzucamy promienia, aby sprawdzić, czy światło rzeczywiście dociera do tego piksela, ponieważ robienie tego dla każdego piksela na ekranie i sprawdzanie promienia względem całej szczegółowej geometrii w scenie jest zwykle wciąż zbyt drogie dla gier w czasie rzeczywistym.
Domyślnie żadne światła gry nie rzucają cieni. Kierunek do światła pozostaje taki sam, nawet jeśli przeszkadza mu cień, więc matematyka daje nam tę samą wartość jasności.
Jeśli chcemy symulować cienie, musimy to zrobić osobno. Jednym z powszechnych sposobów jest tak zwana mapa cieni. W tej wersji, zanim zaciemnimy naszą scenę, najpierw renderujemy scenę z perspektywy każdego światła, tak jakby to światło było kamerą, przechowującą głębokość każdego piksela, który widzi, w teksturę poza ekranem.
Następnie, kiedy cieniujemy scenę, możemy porównać matematyczną odległość tego piksela od źródła światła z głębokością zarejestrowaną dla odpowiedniego piksela na mapie cienia. Jeśli głębokość mapy cienia jest mniejsza, oznacza to, że jest tu inna powierzchnia między światłem a światłem, a my piksel ten rysujemy w cieniu.
Istnieje wiele fajnych technik, dzięki którym te cienie oparte na mapie wyglądają ładniej, z mniejszą liczbą artefaktów / aliasingu, ale na razie ich pomaluję. Wystarczy powiedzieć, że na ogół też nie są wolne.
Ponieważ wymaga to renderowania (maksymalnie) całej sceny z perspektywy każdego światła - nawet sześć razy, jeśli jest to światło punktowe, które świeci we wszystkich kierunkach {północ, południe, wschód, zachód, góra, dół}, i musimy ponownie -renderuj mapę cienia za każdym razem, gdy coś się porusza, może to być bardzo kosztowne.
Dlatego gry często koncentrują swój budżet renderowania na najważniejszych światłach na scenie - takich jak kierunkowe światło słoneczne - aby zapewnić dobrze wyglądające cienie. Małe, krótkotrwałe, niewielkie światła, takie jak błysk eksplozji, są często wybaczalne, jeśli trochę przeciekają obok okluderów. Często jest to bardziej smaczne dla graczy niż problem z szybkością klatek na sekundę ze względu na nagły wzrost kosztów renderowania w wyniku dodatkowego renderowania mapy cieni i obliczeń. Zwłaszcza jeśli jest to ruchliwa scena akcji, w której płynność jest ważniejsza niż perfekcja pikseli.