实时光线追踪技术:发展近况与未来挑战
Ray Tracing Shadow 实现起来并不太复杂。基本思想是向光源发射光线(launch a ray towards the light),如果光线未命中,则不处于阴影中。 ![]() 而与硬阴影(Hard shadows)相比,软阴影(soft shadows)可以更好地传达物体的真实感,更加Ground Truth。软阴影(soft shadows)可以通过在朝向光的圆锥中按随机方向进行采样并将其视为区域光一样对待来实现。锥角(cone angle)越宽,阴影越柔和,但噪点越大,因此我们必须对其进行过滤(filtering)。也可以发射多条光线,但仍需要进行一些过滤操作。 3.4.1 解析直接光照+随机阴影 在基于物理的渲染领域颇有建树的学术大牛Eric Heitz加入Unity后,在Ray Tracing Shadow领域又有了新的突破性进展。 Eric Heitz于2018年提出了一种结合了解析直接光照(analytic direct illumination)和随机阴影(stochastic shadows)的新方法[13])。在paper中,他们提出了一种比率估计器(ratio estimator),该比率估计器可以将解析光照技术(analytic illumination techniques)与随机光线追踪阴影(stochastic raytraced shadows)正确组合。 ![]() 通过将阴影光照分为两个部分——解析部分(analytical part)和随机部分(stochastic part),他们的方法演示了如何通过随机光线追踪在图像的阴影区域部分获得清晰和无噪声,且解析和视觉上逼真的阴影。 而仅在需要时进行随机求解的优点是,最终结果仅在阴影中有噪声,而其余部分则通过解析进行处理。该项技术还将阴影与光照分开,因此可以保留高频阴影细节。真的是很赞。 3.4.2 透明阴影渲染 ![]() 在实时渲染领域,透明渲染一直都是难题,但是通过光线追踪,可以找到一些新的替代方法。 在SEED提供的Demo中,在对透明表面阴影进行渲染时,他们用递归光线追踪(recursive ray tracing)方法来替换常规的阴影光线追踪方法。当光穿过介质时,会成倍地进行积累吸收。并进行薄膜近似(thin film approximation),假设所有颜色都在表面上,以得到更好的性能。同时,就像不透明阴影渲染一样,使用类似的SVGF启发式过滤器对其进行过滤,可以让透明阴影也变得柔和。 ![]() ![]() 上图左侧为未过滤的结果,右侧为已过滤的结果。 ![]() 同样,也能实现类似笔的墨水管的阴影从塑料外壳中传播出的光线的阴影渲染。 3.5 实时光线追踪:透明渲染和半透明渲染 ![]() 光线追踪可以准确地进行光的散射,从而在实现透明渲染和次表面半透明渲染(subsurface translucency)上有天生的优势。 对于透明渲染(Transparency),目前业界的发展近况可以概括为: 正确表示顺序无关的透明渲染(Order-independent Transparency,OIT) 可变的粗糙度,折射和吸收(Variable roughness , refractions and absorption) 多IOR过渡(Multiple index-of-refraction transitions) ![]() 另外,对于粗糙玻璃,推荐使用Walter’s参数化(Walter’s parametrization)和GGX粗糙度重要性采样(importance sample GGX roughness)。而对于特别粗糙的材质,则需要更多的采样来进行降噪,也可以使用时域滤波。实践证明在纹理空间(texture-space)中进行渲染是不错的思路。 而对于半透明渲染(Translucency),目前业界已可以很好地实现均匀介质内部的光散射(Light scattering inside homogeneous medium),在PICA PICA Demo,同样采用了在纹理空间(texture-space)中进行渲染的方案。 ![]() 3.1 实时光线追踪:混合渲染管线 ![]() 对于多光源的处理而言,业界现有方案可以总结如下两类: 基于加速结构的光源选择(Acceleration structure-based selection) 基于重要性采样的光源选择(Light Importance Sampling) 其中,基于加速结构的光源选择(Acceleration structure-based selection)方案的代表性思路可以总结为: Unity引擎的方案。基于相机朝向的加速结构(camera-oriented acceleration structure) [Benyoub 2019] [Tatarchuk 2019] 《战地5》的方案。水平面光源列表(horizontal plane light list)[Deligiannis 2019] 而基于重要性采样的光源选择(Light Importance Sampling)的代表性思路,都是HPG 2019的paper: Dynamic Many-Light Sampling for Real-Time Ray Tracing [Moreau 2019] Stochastic Lightcuts [Yuksel 2019] 其中,《Dynamic Many-Light Sampling for Real-Time Ray Tracing》描述了一种基于两层BVH的分层光源采样数据结构,该结构能够从10,000个发射三角形进行交互式直接光照。这使得未来的实时场景可以只用自发光网格(emissive meshes)来进行光照,非常赞。 3.7 实时光线追踪:粒子系统渲染 ![]() 对于光线追踪粒子系统的渲染,《战地5》解决方案是将粒子朝向光线,有点类似billboard的思想。 而一般方案是维护两个顶层加速结构(Top Level Acceleration Structures, TLAS):一个用于不透明几何体,一个用于粒子系统。 首先用不透明几何体的TLAS发射光线,如果有命中,则存储该长度 然后,在粒子系统的TLAS中发射另一条光线,并从不透明的命中长度限制该光线长度 然后,便可以相应地混合场景中的粒子系统 值得一提的是,另一个技巧是将奇数粒子旋转90度。 3.8 实时光线追踪:全局光照 ![]() 光线追踪硬件的新特性可以给全局光照带来各种便利,诸如依靠各种缓存机制(caching mechanisms)在多个帧上累积渲染结果,并提高采样速度。 可以将业界主流的基于光线追踪的全局光照分为如下三类: 基于面元(Surfels)。Stochastic All The Things: Ray Tracing in Hybrid Real-Time Rendering [Stachowiak 2018] 基于网格(Grid)。Experiments with DirectX Raytracing in Remedy’s Northlight Engine [Aalto 2018] 基于探针(Probes)。Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Fields [Majercik 2019] 3.9 实时光线追踪:剔除 ![]() 因为光线追踪一般是在世界空间中进行的,所以无法使用光栅化方法中比较常用的“视锥剔除(Frustum Culling)”。 如果无法将所有对象都放在BVH中,则必须找到一种新的启发式剔除方法。《战地5》的方案是基于投影包围球(Projected Bounding Sphere)[Deligiannis 2019],不失为一种有效的方法。 3.10 实时光线追踪:Texture LOD ![]() 因为像素四阶导数(pixel quad derivatives)只能用于光栅化,所以光线追踪无法自动进行Texture LOD。 目前的主流方案是依赖于光线差分(Ray Differentials)方法,但其对性能有一定的影响。 在《光线追踪精粹 (Ray Tracing Gems)》[Akenine-M?ller2019]一书中,有讨论到一种基于光线锥(Ray Cones)的替代技术,其虽有一些可改进的地方,但也算是当前不错的方案。 OK,盘点完十个细分领域目前的发展状况,下面接着盘点实时光线追踪业界当前面临的挑战,以及未来的发展方向。 肆 · 实时光线追踪:业界当前面临的挑战 4.1 实时光线追踪处理透明渲染仍有不少问题需要攻克 ![]() 在目前的实时光线追踪领域,在1-2 spp(sample per pixel)的情况下,大多数降噪技术通常对于透明渲染、粒子渲染、体积渲染的渲染效果虽说相较于光栅化有进步,但其实也并算不上特别理想。 PICA PICA Demo中,虽然采用了具有折射和散射的纹理空间OIT(texture-space OIT)技术,但也并不完美,有改进的空间。 对于粒子系统和体积特效而言,采用在miss shader中更新体积/裁剪图、或在hit shader中进行光线步进(Ray marching in hit shaders)、以及进行Non-trivial blending & filtering,都是值得尝试的方向。 当下业界需要研究出更好的降噪技术或者相关方案,以在低spp下带来更佳的透明渲染品质。 ![]() (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |