IrradianceVolumesForGames

原来是想做IrradianceVolume的笔记,但是显然ATI这篇文章要更加全面和深入,所以直接这个吧。

Link:

http://ati.amd.com/developer/gdc/Tatarchuk_Irradiance_Volumes.pdf

 这个文章涵盖了几个方面:

  • Radiance, irradiance, transfer
  • Spherical Harmonics
  • Irradiance Volume

 几个概念:

  • RadianceDistributionFunction:空间一点,在某个角度上的发出的flux,是个5D(pos+2 angle)的函数。
  • Field radiance function : 在surface上半球上定义的incident radiance分布
  • Irradiance : 在半球面上,对于field radiance function和夹角cos值的积分,irradiance可以来定义diffuse surface的randiance。
  • Irradiance:所以可见Irradiance是radiance的一种卷积,也是和pos,direction相关的东西,也是5D的。

 SH:

  • n阶SH系数,有n*n个
  • 和normal做计算----直接dot(这里有些疑问呃,应该是coefficient做了处理的)
  • irradiance gradients【0】 : 在sample点附近irradiance变化比较剧烈,那么需要引入irradiance gradient来处理,否则会这样:
  • irradiance gradients【1】:使用central differencing来计算irradiance gradients,然后把这个vector和dir(point,sample)做dot操作,作用到原来的irradiance,结果就是一个比较正确的irradiance。

 PRT:

 前面介绍的是环境对object的光照影响,但是没法处理物体自己对自己的光照影响。

这样就可以用precomputed radiance transfer来搞定。

前面的blog有介绍,这里跳过。

就是要注意的是,PRT不好旋转,所以可以旋转环境来模拟。


 Irradiance Volume

 这里就是处理高效存储scene里面的irradiance信息的事情了。

就是用空间分割(各种树,比如8叉树,或更加adaptive的8叉树)来做一个irradiance的cache。

树的节点存的是irradianc投射在SH上的系数,使用的时候就是一顿lerp,得出需要的点的SH 系数,然后用就可以了。

 分割空间的时候纯8叉树比较费(很多地方不用继续分割了),所以就用更加灵活的8叉树,叫:

adaptive volume subdivision.

这个dx sample里面有,房子那个。

其实到这一步,怎样分布已经可以非常灵活的根据游戏需要来做了,例如killzone2,就可以让artist来设定那里需要放置sample点,有些地方player没法到达的,就可以直接跳过了。


 后面记录了一些GPu帮助划分的方法,harmonic depth mean,刚才记录了一遍,但是csdn出错了,实在不想再打一遍了。

反正觉得没什么大的实用性。

 最后应用irradiance volume就是根据具体的点,sample周围8叉树节点,然后根据距离做插值,然后应用SH系数就可以了。


 总结:

  • 提供了静态场景预计算全局光照的高效使用办法
  • irradiance gradients处理irradiance 在sample点周围变化剧烈的情况
  • 用SH高效保存低频光信息,高频丢掉
  • adaptive空间分割结构来保存irrdiance cache
  • 插值应用irradiance
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值