3

遅延レンダラーで全方向シャドウ マッピングを実装していましたが、この問題の解決に問題があります。

ここに写真があります:影の問題の例

これは、各軸に沿って正と負の方向を指す 6 つのスポット ライトを配置したときに起こったことです。この問題は、スポット ライトの計算がライトの円錐内に照明を維持することによって引き起こされることを知っています。それが円形である理由です。

私が最初に考えたのは、円錐の計算を無効にすることでしたが、明らかに、あるライトから別のライトを見るとライトがブレンドされているため、オーバーラップが発生します。ライト用にレンダリングされているジオメトリを円錐形から四角形ベースのピラミッドに変更すると (とにかくこれを行う必要があると思いますか?)、代わりにライトのフラスタム (既に持っているもの) を使用できます。現在のピクセルが円錐台の内側にあるかどうかをテストするための円錐計算のことですよね?

もしそうなら、ピクセルシェーダーでこれを行う最良の方法を知っている人はいますか? ポイントが錐台の各平面の前にあるかどうかを確認することだけを考えましたが、これをピクセル シェーダーで行うにはコストがかかるようです。

4

1 に答える 1

0

6 つの錐台がありますが、次の点に注意してください。

  1. 無限ピラミッドにあるかどうかだけで、裏表をチェックする必要はありません
  2. 各面は隣接する 2 つの錐台によって共有されます
  3. 各面は、後ろ向きの錐台によって鏡像化されます

これは、アクセスする必要があるシャドウ マップを確認するために、合計 6 つのプレーンに対してピクセルをチェックするだけでよいことを意味します。

于 2012-12-05T20:42:53.637 に答える