关于实时 Ambient Occlusion 一点猜想

1649 篇文章 11 订阅
1623 篇文章 22 订阅
uploads/200701/19_124132_ambientocclusion.jpg


实现 Ambient Occlusion 一般需要预计算,
如果物体间的相对位置发生了改变,
就需要重新计算,其实这样并不是一种真正意义上的realtime.
因为PRT需要生成一张ambient map所以过程十分缓慢,
不能移动到渲染循环中进行。

我想如果要进行实时的 Ambient Occlusion, 就只能进行顶点
级别的处理,然后把所计算出来的Ambient值写入顶点。
这样的话,当顶点数量不是太多的物体进行处理运算时,基本
可以达到实时渲染的要求。

基本思想:
1、遍例场景中每个物体,再遍例物体的每个顶点。
2、在遍例中,从顶点处,沿顶点法线方向的一个半球内,
均匀发射出若干射线(32条?)
uploads/200701/19_124115_rayhit.jpg

3、然后进行碰撞检测,假使原来顶点的Ambient值为0,
若射线为击中物体数为x,总发出的射线数为N,则最后
此顶点的Ambient值为 x/N, 然后将 BaseColor * (x/N)
写入顶点色。
4、依次处理场景中的所有顶点,处理后再进行Diffuse光照
贴图。等
5、如果位置发生改变则,重新计算一次顶点色。

这里只是我对实时 Ambient Occlusion 的一点猜想,
如果有什么不对的地方,欢迎大家指出,
也欢迎大家进行讨论。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值