我已经达到了为单个光源实现延迟渲染和阴影贴图的程度。我本来期待添加更多光源来看看延迟渲染如何提高性能,但我意识到这次阴影贴图几乎毁了它。
这是可以预料到的吗?当有很多光源时我应该使用另一种阴影算法吗?
我所做的是从每个灯光的角度创建一个立方体贴图。然后,当在延迟渲染着色器中渲染片段时,我会考虑每个灯光对该片段的贡献程度,这意味着片段可以看到哪些灯光。因此,这只是对片段是否处于光源阴影中的正常检查。
最佳答案
一般来说,阴影不能很好地随灯光数量变化。一两个阴影转换灯是可以容忍的,但超过这个数量就会严重影响你的表现。几乎所有通用照明机制都是如此(也许基于光线追踪的阴影除外)。
延迟渲染不会改变这一点的数学原理。您仍然必须从每个阴影光源的角度渲染场景,并且您的照明 channel 仍然必须从这些纹理中获取来进行阴影。
典型的解决方案是限制主光源和辅助光源的阴影转换灯的数量。也许。其他一切都不会转换阴影。
关于opengl - 许多光源的阴影贴图 - 速度慢吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932811/