Opengl 在延迟渲染器中实现环境照明?

Opengl 在延迟渲染器中实现环境照明?,opengl,Opengl,我最近在我的引擎中添加了延迟着色,并遇到了一种称为“光体积”的技术。虽然因为它将照明计算减少到最小(仅在灯光体积中执行片段),所以它非常棒,但我不知道如何使用环境照明渲染场景的其余部分 在没有环境照明的情况下,我得到了以下场景:(灯光体积已以灰色突出显示) 当然,我总是可以渲染一个全屏四边形,但我会失去这种技术的好处 有什么建议吗 编辑:多亏了尼科尔,我终于让它工作了:)这是一张新照片: 您可以在单独的过程中进行环境照明。与使用延迟渲染的灯光一般情况相同。这是一般的想法,每个灯光在其自己的过程

我最近在我的引擎中添加了延迟着色,并遇到了一种称为“光体积”的技术。虽然因为它将照明计算减少到最小(仅在灯光体积中执行片段),所以它非常棒,但我不知道如何使用环境照明渲染场景的其余部分

在没有环境照明的情况下,我得到了以下场景:(灯光体积已以灰色突出显示)

当然,我总是可以渲染一个全屏四边形,但我会失去这种技术的好处

有什么建议吗

编辑:多亏了尼科尔,我终于让它工作了:)这是一张新照片:


您可以在单独的过程中进行环境照明。与使用延迟渲染的灯光一般情况相同。这是一般的想法,每个灯光在其自己的过程中发生,通过与它们进行加法混合,将结果累积到帧缓冲区中


环境光只是被视为另一个光源。

Nicol的回答是正确的,但也许您可以详细说明为什么您认为通过每个像素的迭代会扼杀环境光源延迟渲染的好处?您仍然只考虑屏幕上实际显示的像素,而不考虑任何后续覆盖的中间结果,就像在原始渲染器中那样。我的意思是,将点光源渲染为全屏四边形是对性能的浪费。。。因为你不需要穿过那些没有被灯光照亮的部分!是的,我尝试过这样做,但有一个问题:首先我用环境光渲染了整个场景,然后渲染了点光源:您实际上得到了这样一个结果:渲染点光源时,它实际上会在顶部添加照明,因此您可以看到灯光体积边缘和场景其余部分的差异@代码32:对,但这不是你上面的问题。您上面的问题是您没有进行第二次环境光传递。如果您这样做,那么您将获得环境照明。点光源+灯光体积效果不是你想要的,这是一个单独的问题,你显然已经问过了。还有一件事:你对如何处理灯光衰减中的“类”圆圈有什么建议:使衰减更平滑?(您可以通过放大在图像2中看到它)