Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl 许多光源的阴影贴图-速度慢吗?_Opengl_Shadow Mapping_Deferred Rendering - Fatal编程技术网

Opengl 许多光源的阴影贴图-速度慢吗?

Opengl 许多光源的阴影贴图-速度慢吗?,opengl,shadow-mapping,deferred-rendering,Opengl,Shadow Mapping,Deferred Rendering,我已经到了为单个光源实现延迟渲染和阴影映射的地步。我期待着添加更多光源,看看延迟渲染如何提高性能,但我意识到阴影贴图这次几乎毁了它 这是意料之中的事吗?当有许多光源时,我应该使用另一种阴影算法吗 我所做的是从每个灯光的角度创建一个立方体贴图。然后,在延迟渲染着色器中渲染片段时,我会考虑每个灯光对该片段的贡献程度,这意味着片段可以看到哪些灯光。所以,这只是一个普通的检查片段是否在光源的阴影中 一般来说,阴影不能很好地随灯光的数量缩放。一个或两个阴影投射灯光是可以容忍的,但超过这个数量会严重影响你的

我已经到了为单个光源实现延迟渲染和阴影映射的地步。我期待着添加更多光源,看看延迟渲染如何提高性能,但我意识到阴影贴图这次几乎毁了它

这是意料之中的事吗?当有许多光源时,我应该使用另一种阴影算法吗


我所做的是从每个灯光的角度创建一个立方体贴图。然后,在延迟渲染着色器中渲染片段时,我会考虑每个灯光对该片段的贡献程度,这意味着片段可以看到哪些灯光。所以,这只是一个普通的检查片段是否在光源的阴影中

一般来说,阴影不能很好地随灯光的数量缩放。一个或两个阴影投射灯光是可以容忍的,但超过这个数量会严重影响你的表现。几乎所有通用照明机制都是如此(除了基于光线跟踪的阴影)

延迟渲染不会更改此上的数学。您仍然必须从每个阴影光源的角度渲染场景,并且您的照明过程仍然必须从这些纹理获取阴影

典型的解决方案是将阴影投射灯光的数量限制为主光源,也可能是次光源。其他一切都不会投下阴影