MRT を使用して遅延シェーディングを実装しようとしています。そのためには、2 つのレンダリング ターゲットに色と法線を蓄積する必要があります。R32G32B32A32
そのために 2 つのテクスチャを定義しました。
ピクセル バッファーは、両方のレンダリング ターゲットに出力します。ただし、値を置き換えたりブレンドしたりするのではなく、値を累積するように指示するにはどうすればよいですか?
次のブレンド状態を定義してみました:
blendState.RenderTarget[0].BlendEnable = TRUE;
blendState.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
blendState.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE;
blendState.RenderTarget[0].DestBlend = D3D11_BLEND_ONE;
blendState.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
blendState.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
blendState.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ONE;
blendState.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
blendState.RenderTarget[1].BlendEnable = TRUE;
blendState.RenderTarget[1].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
blendState.RenderTarget[1].SrcBlend = D3D11_BLEND_ONE;
blendState.RenderTarget[1].DestBlend = D3D11_BLEND_ONE;
blendState.RenderTarget[1].BlendOp = D3D11_BLEND_OP_ADD;
blendState.RenderTarget[1].SrcBlendAlpha = D3D11_BLEND_ONE;
blendState.RenderTarget[1].DestBlendAlpha = D3D11_BLEND_ONE;
blendState.RenderTarget[1].BlendOpAlpha = D3D11_BLEND_OP_ADD;
しかし、私が得ている値は奇妙です。
助けてください!値を累積するにはどうすればよいですか?