ぼかしポイントライト分散シャドウマップ


7

私はゲームの分散シャドウマッピングの実装に取り​​組んでいます。エイリアスマップを適用するためにガウスぼかしをシャドウマップに適用して、分散シャドウマッピングでスポットライトを機能させることができました。現在、ポイントライトを実装しようとしていますが、キューブマップに格納されているシャドウマップで動作するようにガウスぼかしを適応させる方法がわかりません。しばらく探してみましたが、ポイントライトを使用した例を見つけることができません。誰かがここで私を手伝ってくれる?


私はあなたの作品のサンプルを見たいと思います-多分ソースコードですら。
ashes999

回答:


2

ポイントライトを使用して分散シャドウマッピングを行う方法の例がありますが、キューブマッピングの代わりに二重放物面マッピングを使用しています。例付きのチュートリアルをここに示します

キューブマップよりも少し詳細に対処する場合は、DP分散シャドウマッピングの方がコーディングが簡単であり、6つではなく2つのテクスチャを必要とするため、メモリを節約できます。また、非表示にする継ぎ目は1つだけです。

ポイントライトは通常、シャドウマッピングを適用するのに最も難しい種類のライトであり、メモリをより多く消費します。そのため、多くのゲームではポイントライトをあまり使用しません。


私はそのチュートリアルを見たことがありますが、商用ゲームに十分な速さではなく、見栄えの良いメソッドを探していたので、そのメソッドを避けようとしました。キューブマップメソッドに関するドキュメントがないため、とにかくそのルートに行かなければならないようです
Telanor

@Telanor優先順位が「見栄え」の場合、DPマップの作成に使用される2つのレンダーターゲットの幅と高さを常に増やすことができます。次に、シャドウの高解像度テクスチャを作成します。
ChrisC、2011

1

これを以前に実装したときは、標準の2Dガウスぼかしを使用して、各キューブ面を個別にぼかしました。ぼかしがそれらを越えないので、潜在的にキューブのエッジにシームを導入することができますが、私の経験では、これはほとんど気づかれませんでした。もちろんYMMV。

キューブマップの形式で入力を取得するブラーシェーダーを記述し、方向の円錐をサンプリングしてサンプルを3Dベクトルの周りに分散させることにより、キューブのエッジを横切ってブラーを行うこともできます。それはトリッキーで遅いように聞こえるので、私は最初に各顔を個別にぼかしてみます。


継ぎ目が非常にはっきりしているように見えたので、具体的には試していませんが、実際に試してみて外観を確認します。あなたの2番目の提案はおそらく答えですが、そうするためにサンプルを変更する方法がわかりません。ぼかしを本当によく理解していません
Telanor

過去2日間オンとオフを
繰り返した後

@Telanor、クロスフェイスキューブマップのぼかしについての記事です。多分それは役立つでしょう。 developer.amd.com/media/gpu_assets/...
ネイサン・リード

私はその記事を見ましたが、それは私には十分に詳細ではありません。たぶん、そのような説明を読むだけで実装できるよりもはるかに多くの経験を持つ誰かかもしれませんが、私は3Dプログラミングの初心者です。実装したいのであれば、もっとチュートリアルが必要です。
Telanor 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.