TomTsagkの正しい答えを拡張して、ゲームがこのように機能する理由についてもう少し説明するのに役立つと思いました。
ゲームの光は、実際には光源から表面、カメラに「移動」せず、途中で遮られます。
与えられた光に基づいて表面の各ピクセルをどれだけ明るく描画するかを把握するために、表面の向きと表面上のこの点から光源への方向を使用する数式を使用(または近似)します。それだけです、それが輝いている方向だけです。通常、光線が実際にこのピクセルに到達するかどうかを確認するために光線を投じません。なぜなら、画面上のすべてのピクセルに対してそれを行い、通常、リアルタイムゲームにはまだ高すぎます。
そのため、デフォルトでは、ゲームライトは影を落としません。ライトへの方向は、シャドウキャスターが邪魔になっても同じままなので、数学から同じ明るさの値が得られます。
影をシミュレートする場合は、個別に行う必要があります。一般的な方法の1つに、シャドウマップと呼ばれるものがあります。このバージョンでは、シーンをシェーディングする前に、各ライトの視点からシーンをレンダリングします。あたかもそのライトがカメラであるかのように、表示される各ピクセルの深度をオフスクリーンテクスチャに保存します。
次に、シーンをシェーディングするときに、光源からのこのピクセルの数学的距離と、シャドウマップの対応するピクセルで記録した深度を比較できます。シャドウマップの深度が小さい場合、こことライトの間に別の表面があることを意味し、代わりにこのピクセルをシャドウに描画します。
これらのマップベースの影をより美しく見せるために、アーティファクト/エイリアシングを少なくするためのクールなテクニックがたくさんありますが、ここではそれらについて説明します。それは言うに足ります、彼らは一般に無料でもありません。
これには、各ライトの視点からシーン全体を(最大)レンダリングする必要があります。すべての方向{北、南、東、西、上、下}を照らすポイントライトの場合、最大6回です。 -何かが動くたびにシャドウマップをレンダリングします。これは非常に高価になる可能性があります。
そのため、ゲームでは、レンダリングの予算をシーン内の最も重要なライト(指向性太陽光など)に集中させて、見栄えの良いシャドウを確保することがよくあります。爆発物のフラッシュのような小さく、短命で、マイナーなライトは、オクルーダーを少し過ぎて漏れる場合、しばしば許されます。多くの場合、これはすべての余分なシャドウマップのレンダリングと計算によるレンダリングコストの急激な増加により、フレームレートの問題よりもプレイヤーにとってより好ましいものです。特に、ピクセルの完成度よりも流動性が重要な忙しいアクションシーンの場合。