延迟渲染中的光积累

问题描述:

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

+0

您将渲染具有不同几何形状的不同灯光类型。一些灯,如方向灯,将是一个全屏幕四方。其他人,如标准的Omni,可以是一个球体。射灯可以是锥形。 – Robinson 2012-03-29 10:40:30

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