[翻译]延迟着色(2)

全局光源
•一些影响整个场景的元素,比如太阳光和雾
•需要在整个屏幕上进行计算
•顶点坐标,法线,颜色以及材质的参数均以纹理的形式输入。
•光照计算在象素着色器中实现。
•计算输出先储存在一个中间的光照缓冲中。

局部光源
•局部光源的光照效果只影响到整个场景的一部分
•我们只计算受相关光源影响的象素。
•这需要将光源体投影到屏幕空间
•利用GPU很容易对象素按光源进行分类。
•在场景构造时,我们建立一个简单的网格来表示光源影响的空间区域,在游戏运行时,在3D空间中对这个网格包围的象素进行光照计算。

以下是延迟光照的关键部分,水平有限,如有错误还请谅解。延迟光照的关键点之一,如何找到光照体积网格中的象素。


 
首先渲染光源体积网格的背面,将Z比较设置为D3DCMP_GREATER,很显然红色粗线表示的几何体所覆盖的屏幕区域被标志出来,从上图中可以看到,红色区域部分只有位于红色三角形内的部分所覆盖的象素才需要进行光照计算。第二步我们需要进一步将青色部分选出来。这次渲染光源体积网格的正面,将Z比较设置为D3DCMP_LESS,这样就可以将光源体积外的象素给剔除掉了,原理和体积阴影计算一模一样。

转载于:https://www.cnblogs.com/effulgent/archive/2008/02/03/1063306.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值