2011-01-03 21 views
0

私は、DX9でシャドウマッピングを実行するコードを書いています。 1つの光源からシャドーマップしか得られていないサンプルコードです。複数の光源からシャドーマップを作成することは、実行可能ですか?私のシーンは非常に明るく、そうでなければレンダリングされます。テクスチャはなく、わずか数百〜数千の頂点しかありません。シャドウマッピング - 複数のソース

問題は私のシーンが太陽の近くの宇宙で起こることです。私は球を太陽として作成し、各頂点を光源としてレンダリングしようとしていました。これはまた、様々なSF空間宇宙船の効果に対していくつかの良い効果を生み出すことにもなりました。しかし、コードを読んで、私はこれが私の演技を破壊するだろうと非常に懸念しています、そして、私はそれが私が探している信じられないほどの照明効果を生み出すことを完全には確信していません。私はここで過度に殺されていますか?

答えて

0

TBHを教えている必要があります。大きな球の各頂点からの光源は、あまりにも多くのウェイです。影に柔らかいエッジをつけた後であれば、一般的にはsoft shadowingを調べる方がはるかに優れています。

半減期2は、シャドウマップを別のレンダリングバッファにレンダリングすることによって(メインレンダーバッファからのZバッファを使用して)、ソフトシャドウイングを実現しました。その後、そのバッファをぼかしてメインのレンダーバッファに再び適用します。結果はかなり良い見た目のシャドウです...

0

「先進的な」エフェクト/テクニックのDXまたはOGLコードをお探しの場合は、Humus 3Dをご覧ください。シャドウマップのサンプルがいくつかありますが、複数のソースが必要です。また、GPU Gems 3のthis sectionも興味深いかもしれません。

1

それぞれが影を落とす複数のライトをレンダリングする簡単な方法はあるの------>すべての光のため

ループの中で次の操作を行い::

{

クリアオフスクリーンのRenderTargetは黒です。

オフスクリーンのレンダーターゲット上の現在のライトのみでシーンをレンダリングします。

次に、Blending(Add、One to One)をオンにして、Offscreen RenderTargetをメインのバックバッファに描画/オーバーレイします。

すべてのライトがレンダリングされたら、シーンを提示します。光は最後に追加されるだけなので、レンダリングは必要なだけ多くの光を維持することができます。 この方法は、異なる照明を使用しているかどうかに関係なく動作します。ライトごとにシャドウをオンまたはオフにすることもできます。

これのどれかが不明である場合&は、より良い説明は、私は...あなただけoverkilling ARE

関連する問題