有屏幕空间反射还不够么?

2021/01/2981 浏览综合
现如今大型 3D 游戏中,难免会有很多光滑的表面会造成各种反射,为了还原光滑或各种粗糙度的表面造成的反射效果,出现了多样的反射技术,比如立方体贴图模拟反射、平面反射、屏幕空间反射(SSR)等等,其中屏幕空间反射技术作为其中相对效果出众的解决方案,被很多 3A 游戏所采用,用来模拟包括水面反射等的反射,效果十分出众。
其中《赛博朋克2077》中灯火阑珊,光影丰富的效果,在不开启光追的时候,也是使用屏幕空间反射来实现的。
TapTap
既然效果也不错,为啥还得添加光线追踪的技术呢?因为屏幕空间反射实际上是有局限性的,顾名思义,屏幕空间反射是基于你屏幕中显示到的东西来进行显示,屏幕以外看不到的部分不会参与计算,就会造成如下图的情况:只要你低头,海报的上半部分不在屏幕中,水面就忠实的不反射看不到的部分了。
TapTap
TapTap
此外,因为是基于屏幕显示,所以在判断距离上也会出现 BUG 。如下图,屏幕空间反射下朱迪头部下方的水面,有一大块黑色反射,其实是朱迪脑袋造成的,实际上根据所处方位,脑袋是不会反射到水里的,开启光追后这个错误反射也被修正了。
TapTap
TapTap
所以说,要想达到正确和相对完美的反射效果,还是需要光线追踪技术的介入,不过介于其性能要求很高,在可支持硬件进一步普及前,屏幕空间反射等替代技术还是会继续以其高性价比的优势,继续发挥作用。