現在、direct3d 9でシーンに影を描画しようとしています。マルチパスレンダリングを実行しようとしていますが、ブレンドモードの使用/設定方法を理解するのに問題があります。
デプスバッファを埋めるデプスパスを実行した後、シーン内のすべてのライトをループするループが作成されました。そのループ内に2つのループがあり、どちらもシーン内のすべてのシェイプをループします
私はこの種の設定をしています
for(number of shapes)
{
//render from camera position and fill depth buffer
}
for(number of lights)
{
for(number of shapes)
{
//render to shadow map
}
for(number of shapes)
{
//render to screen
}
}
pixでは、各ライトをループしていることがわかりますが、実行すると、ライト配列の最後のライトのみが表示されます。ブレンドモードと関係があると思います。
ブレンドモードを調べて、ソースブレンドとデスティネーションブレンドに関する情報を見つけました。これは私が必要としているものですか/誰かがそれを説明するのを手伝ってもらえますか?
前もって感謝します、
マーク
[編集]次のコードを使用して両方のライトを表示しました
hr = device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
hr = device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
hr = device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
影は正しく見えませんが、目的の結果に近づいています。
これ以上のアドバイスは素晴らしいでしょう、
ありがとう、
マーク