0

6 つのスポット ライトをレンダリングして、シャドウ マッピング アルゴリズム用のポイント ライトを作成しようとしています。

これを正しく行っているかどうかはわかりません。ビューと射影行列を設定するときに、多かれ少なかれここの指示に従いましたが、最終結果は次のようになります。

代替テキスト

白い部分は 6 つのシャドウ マップのいずれかで覆われている部分で、暗い部分はシャドウ マップで覆われていない部分です。もちろん、ティーポットとボックスの影がシーンに投影されても問題はありませんが、ご覧のとおり、6 つのシャドウ マップには盲点があります。これは立方体のシャドウ マップがどのように見えるべきか? 点光源のシャドウマップに見えない…

4

2 に答える 2

2

実際には、6 つのスポットを調整して、キューブマップの各面を完全に埋める円錐を持つようにすることができます。これを実現するには、各コーンのアパーチャを設定して、各キューブマップ面の周囲に外接円を作成します。この場合、オーバーラップする部分は面の領域外にあるため、オーバーラップについて心配する必要はありません。

言い換えると、ライトの投影マトリックスの FOV を調整して、ライト コーンを含むビュー フラスタムではなく、コーンにビュー フラスタムが含まれるようにします。

実装全体については、この論文を参照してください

于 2009-12-13T12:02:30.890 に答える
2

ここに表示されているのは、円と 2 つの双曲線 (円錐曲線) です。両端の円錐を平面と交差させた場合に期待される結果とまったく同じです。

この計算は状況から取り除かれているように見えるかもしれませんが、問題を説明しています。スポットライトは光の円錐を作成しますが、同じ点から来る円錐の束で固体空間を完全に満たすことはできません。(試しに、紙を丸めてポイントでテープで留めることをお勧めします。)

ただし、シミュレートされた点光源の原点から遠ざかるにつれて、円錐はその漸近線に収束し、光には非常に狭いギャップが生じます。

これを解決する 1 つのオプションは、円錐の焦点を変更して、円錐がわずかに重なるようにすることです。これにより、露出過度の領域が作成されますが、露出過度は、遠ざかるにつれて明らかになります。すべてのオブジェクトが点光源の近くにある限り、これは大きな問題にはなりません。

もう 1 つのオプションは、すべてのライトの焦点を光源に近づけることです。このようにして、より迅速に漸近線に収束します。

于 2009-12-12T13:23:33.210 に答える