Voxel Cone Tracing based Global Illumination

之前很早就看到了UE4中的基于Sparse Voxel Octree的RTGI,效果很酷,一直尝试作些研究与实现,但苦于没机会。前段得空,抽时间学习了一下,这里小结一下备忘。

整个算法主要分类几个过程:体素化、Mipmap OCTree、Cone Tracing。

1. Voxelization

体素化整个GI算法的基础。这里体素化可以采用的方法也比较多,主要有以下几种:

  1. 直接将体素与场景进行碰撞检测。该方法比较原始,效率也较低,虽然也可以借助于GPU进行加速,但是在该特定场合中使用起来还是诸多不便;
  2. 基于CUDA进行体素操作,这也是使用GPU进行加速的一种方法。比如这里的一个使用CUDA进行光栅化方法,稍作修改就可以同样用来实现体素化;
  3. 基于GPU Rasterization的方法,使用这种方法的好处就是不需要特殊的Pipeline,很容易将它往现有的游戏或渲染引擎中进行整合;
由于整个算法要搞定动态场景以及动态光源,因而这里的体素化操作也是需要实时更新的,因而就需要效率尽可能高的体素化操作算法;而且就尽可以地与现在的引擎紧密结合,如此一来基于CUDA的其实也是不太方便。对于第三种方法,结合当前最新的DX11或OGL4.0以上的一些新属性,可以实现基于Rasterization和DirectCompute的体素化算法。这里有一篇文章就是Cone Tracing算法的作者发表在OpenGL Insight中介绍使用OpenGL来进行光栅化的方法,值得学习。
体素化的过程主要如下图所示:

其主要流程是:
  1. 使用与体素化细分分辨率相同的正交投影窗口来渲染三维网格中的每个三角形;
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值