SHPRT的一点体会

放假了,来更新一下 :)

PRT在给我们带来实时全局光照的同时也给我们带来了精度和数据量的问题。
通过DXSDK的例子不难发现,要让阴影有平滑的过度需要大量的顶点,这是利用了显卡帮我们做其中的颜色插值。但实际上对于稍复杂的场景,大量的顶点就意味着no-realtime。虽然逐象素PRT能缓解这方面的问题(nicky的文章有详细的描述),但庞大的数据量始终是令人头痛的。各种压缩的方法有待挖掘。

直接光照:
考虑到预计算的代价,一般给16或25个系数。
近似的算法使得软阴影与生俱来(要获得更硬的影子?对不起...)
同时,利用SH旋转不变的特性,实现动态光照。

预计算的所有时间几乎都用在了shadowray,也就是光线和面求交上了。
一般用octree或kdtree来减少求交的次数就能得到很大程度上的提速。



直接光照 +  间接光照:
在直接光照的基础上,对每个顶点或有效象素的射线方向求得最近相交的面,并累加构成此面三个点的系数。
就可以得到类似辐射度的color bleeding效果。



最后,关于PRT的扩展
虽然SH足以应付Diffuse BRDF,但却无法有效得处理高光
因为一旦碰到更复杂的光照函数时,预计算的时间则会以级数形式增长
所以这个时候wavelet是更好的选择,据说可以把计算时间仍然控制在O(n)
具体可以参考Triple Product Wavelet Integrals for All-Frequency Relighting

转载于:https://www.cnblogs.com/chaz/archive/2006/10/02/520122.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值