光线追踪算法的计算要求非常高,稍微好点的画质,至少要求每像素达到上千的采样数量。简单介绍下光线追踪算法:
从相机发射射线到场景中与场景中物体进行相交检测,如果碰撞检测成功,则根据物体的材质计算颜色,然后计算反射或者折射光线的方向,继续跟踪这条新的光线,直到达到最大递归深度或者没有碰到任何物体。如果不采用BVH。
那么每一条射线都需要和场景中的所有物体球体、三角形等复杂物体进行相交检测,而这个检测时间是非常昂贵的,因为要计算直线和球体的相交,直线和三角形的相交等,这些计算都比较复杂,尤其是三角形这块。相交检测的时间是目前光线追踪算法从理论到大规模实际应用过渡的主要瓶颈。
光线追踪在移动端仍属较新领域,原因在于该技术对算力要求极高。以往硬件选择的折衷方案是通过软件层面进行模拟,但效果不够理想。移动设备总是会受限于面积和功耗预算,我们需要一个具有高效架构的解决方案,以降低功耗。基于Imagination的光线追踪架构,光线追踪在智能手机等低功耗嵌入式设备中不仅可行,而且够快。
在传统游戏的图形渲染处理中,对于光线的处理仍是以光栅化渲染为主,但光栅化作为一种取巧的手段,需要大量的手工设置,且最终只能在视觉上接近真实,并不遵循物理规律。就如省略了计算光线的步骤后,同一个场景里各种物体之间不会有任何光影关系,比如镜面和水面呈现的光线反射和折射效果,单靠光栅化就无法实现。