我已经实现了一个单一光源的延迟渲染和阴影映射。我期待着增加更多的光源,看看延迟渲染如何提高性能,但我意识到,阴影映射几乎破坏了这一次。
这是意料之中的吗?当有许多光源时,我应该使用另一种阴影算法吗?
我所做的就是从每个光的角度创建一个立方体地图。然后,当在延迟渲染着色器中渲染一个片段时,我会考虑到每个光对该片段的贡献有多大,这意味着该片段可以看到哪些光线。所以,这只是一个正常的检查,一个碎片是否在一个光源的阴影中。
发布于 2018-12-26 15:08:12
一般来说,阴影与灯光的数量不太相称。一个或两个阴影投射灯是可以容忍的,但更多的将严重影响你的表现。几乎所有的通用照明机制都是如此(除了光线跟踪的阴影)。
延迟呈现不会改变这方面的数学计算。你仍然需要从每个阴影光源的角度渲染场景,而你的灯光传递仍然需要从那些纹理中获取来进行阴影。
典型的解决方案是将阴影投射灯的数目限制在初级光源或次级光源上。其他一切都不能投下阴影。
https://stackoverflow.com/questions/53932811
复制相似问题