【问题标题】:Light accumulation in deferred rendering延迟渲染中的光积累
【发布时间】:2012-04-12 14:34:26
【问题描述】:

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

【问题讨论】:

  • 您将渲染具有不同几何形状的不同灯光类型。一些灯,如定向灯,将是全屏四边形。其他的,比如标准的 Omni,可以是一个球体。聚光灯可以是一个圆锥体。

标签: java opengl deferred-rendering


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-12-11
    • 1970-01-01
    • 2015-04-14
    • 2011-11-05
    • 2014-04-17
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多