d3d11 indirect lighting

http://www.gdcvault.com/free/category/280/conference/这里的一个文章

 

不过看着业界一点点迈向realtime GI,着实激动啊。

 

开卷列举了近期realtime indirect lighting的比较好的一些技术(paper),然后提到这个paper是包含:

  • indirect lighting
  • 和indirect lighting shadow

 


 

个人看法,indirect lighting和shadow同是计算光照相关的东西,很多方面的基本理念真的是非常相像。

比如基于rasterizer pipeline的话,都是有:

  • screenspace----把需要计算的相关信息进行精确定位
  • 有kernel的概念----想pcf等,也是rasterizer pipeline和单点(pixel)光照信息来自附近多点的时候的必然产物。

这个paper的indirect lighting的算法走的是screen space----来精确定位需要算什么。

然后在一定kernel上----进一步限定计算范围

用raytracing来计算间接光照。

 

所以最后下来,尽管标准意义上的raytracing是很昂贵的技术,但是在各种简化下,也可以在5970达到很高的fps了。

 

进一步细节:

  • 使用RSM来存储直接光照的信息,texel作为VPL
  • camera view来将每个pixel转到RSM space去,在一定kernel中来raytracing间接光照
  • 最后得到的就是一个camera view的screenspace的间接光照buffer

这整个过程简直就是山寨screenspace shadow map(pcf filter),对比流程:

  • light view构建depth
  • camera view每个pixel转到lightview中去sample lightview-depth(shadow map),计算过程是kernel里面做的。
  • 最后得到一个camera view的full screen的shadow buffer
  • 最后往回一帖就好。

 


 

indirect lighting shadow

尽管觉得这个feature有点蛋疼,但是也是此paper的亮点:

基本算法:

  • 建立3d grid
  • 然后间接光照被挡住的才记下来
  • 然后用上面的indirect lighting buffer减去这个被挡的lighting
  • 就有了indirect lighting shadow

关键在3d grid这部分。

是用3d的texture来表示grid。

然后linklist来记录grid里面的triangles----这个只有dx11才有地。

然后再做occlution计算。

 

 


 

效果绝对刚刚地:(注意indirectlighting shadow)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值