延迟渲染中的光累积

时间:2012-03-28 23:16:44

标签: java opengl deferred-rendering

我正在考虑将我的前向渲染器转换为延迟渲染器,但是有一个我无法找到(或无法概念化)的问题,这就是场景中所有灯光的累积方式。在前向渲染中,我会将所有灯光上传到着色器,但由于不同对象的大小,我被限制为4。如何将累积的光信息提供给我的最终复合着色器?我是否以与每个场景对象的渲染方式类似的方式渲染每个灯光?我已经看到一些例子将每个点光渲染成一个球体,但我看不出这种方法如何允许衰减。

1 个答案:

答案 0 :(得分:4)

延迟着色的想法是,您在每个灯的一个屏幕大小的图像操作中进行光照计算,即对于每个光执行自己的延迟着色过程。光加起来,所以你使用添加剂混合模式(没有alpha通道,只需总结)。这也是延迟着色仅适用于不透明几何体并且需要额外准备(如深度剥离场景)的原因,如果要应用于半透明几何体。