2014-02-12 55 views
0

我目前正试图扩展我目前的基本阴影贴图系统,以允许物体具有从多个灯光投射出的阴影。此刻,我已经正确生成了两个阴影贴图,但问题是让它们都在场景中呈现。来自多个光源的阴影(DX11)

我绘制函数目前是这样的:

仅用于绘制和第二阴影贴图,我缺少什么吗?

+1

我想你会用第一个绘制的场景重写第二个DrawScene。你需要某种形式的shadowmaps组合。要么你可以将它们都设置在场景的着色器中,并将它们组合到着色器中(更快,因为只将场景画到后缓冲区),或者可以尝试将第二个drawcall与Min-BlendFunction混合到第一个场景(更容易,但更慢) – Gnietschow

+0

感谢您的答复,我试图首先实施混合方法。我已将混合操作设置为MIN,但源和目标混合以及Alpha设置如何? – Wikaman1

+0

他们应该是一个,因为如果你想象你的两个场景,你想要总是采取较暗的价值,应该有阴影。请记住,开始仅将第二次阴影迭代应用于混合函数。第一次迭代应该正常渲染到后缓冲器。 – Gnietschow

回答

0

阴影图在向前渲染器相结合的两种标准方法要么做多遍照明与添加剂混合,其中每个通在从不同的光或单通照明,其中所述着色器遍历灯的光贡献增加在场景中并积累他们的灯光贡献。 MIN混合并不是在多道照明方法中合并来自多个灯光的贡献的正确方法。我建议尝试添加剂混合。

+0

是啊,我同意。我奇怪地忘记了多盏灯将他们的照明加在一起......我只想到某种结合阴影的面具。 – Gnietschow