前段时间出了虚幻引擎5,介绍说是可以实现实时光线追踪,感觉不可思议,后来看文章发现大部分的光线追踪都是基于体素的光线追踪(消耗比较小),一小部分的光线追踪是基于屏幕的射线。于是找了文章开始了解体素光线追踪。
这个技术是英伟达提出来的,不算真正意义上的光线追踪,有点近似的感觉,但是效果也很逼真,下面介绍一下:
本文算法总共有四个阶段,分别为体素化、直接光照、各向异性过滤、间接光照,算法的各个阶段如图1所示。第一阶段是体素化阶段,将图元为三角形的场景转换为体素场景,计算单个体素的基础属性并存储。第二阶段是直接光照阶段,计算光源照射到每个体素上的直接光照,并将其作为出射辐射度存储在体素中。第三阶段为各向异性过滤阶段,将体素的出射辐射度经过各向异性过滤形成层级,既简化了存储光线传输的方向,又保持后续采样的一致性。第四阶段是体素锥追踪阶段,通过锥体的光线束来收集第二阶段中体素的出射辐射度,并用来计算间接光照。

第一个阶段就是场景体素化。原来场景的Mesh都是由三角形面片组成的,现在转换成立方体块的体素