多个光源的阴影(DX11)

时间:2014-02-12 23:16:50

标签: c++ directx shadow directx-11

我目前正在尝试扩展我当前的基本阴影贴图系统,以允许对象从多个灯光投射阴影。目前我已经正确生成了两个阴影贴图,但问题是让它们都在场景中渲染。

我的绘制功能目前是这样的:

for (int iLight = 0; iLight < mNumLights; iLight++)
{
    mShadowMap[iLight]->SetNullRenderTarget(md3dImmediateContext);

    DrawSceneToShadowMap(iLight);

    RestoreRenderTarget();

    SetShadowMap(iLight);
    SetShadowTransform(iLight);

    DrawScene();

}

mSwapChain->Present(0, 0)

只使用和绘制了第二张阴影贴图,我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

在前向渲染器中组合阴影贴图的两种标准方法是使用附加混合进行多次通过照明,其中每次通过添加来自不同光源或单次通过光源的光线贡献,其中着色器环绕光源场景并积累他们的光明贡献。在多遍照明方法中,MIN混合并不是合并来自多个灯光的贡献的正确方法。我建议尝试添加添加剂。