基于辐射缓存的精确实时镜面反射技术
1. 阴影缓存未命中光线处理
在实际场景中,若要让每个点都能在某个辐射探测器中可见,就需要大量的探测器,这会为采样和重光照过程带来额外开销。而且,探测器不包含动态几何体,其分辨率对于某些光线(尤其是高度光滑表面的光线)可能过低。所以,对于那些在任何探测器或屏幕空间光照纹理中都不可见的光线交点,需要一种可靠的方法来重建辐射度。
具体操作步骤如下:
1. 单独计算通道 :使用一个单独的计算通道为每个未着色的样本计算辐射度。由于光线追踪通道会输出几何实例索引、基元索引和重心坐标,这些信息可直接用于构建精确的命中点,并查询光照通道所需的所有数据。
2. 统一计算方向 :虽然理论上可以使用精确的光线方向来计算镜面高光,但为了与辐射缓存和屏幕空间光照计算的镜面光照相匹配,这里使用相机方向。
3. 索引压缩 :为避免在波前(warp/wavefront)内根据需要着色的样本数量进行分支操作,在采样过程中,将缓存未命中的光线索引压缩到一个单独的缓冲区中。
4. 并行计算 :另一个计算通道会对从缓冲区读取的每个所需光线应用辐射度计算,确保波前内的每个线程执行相同的工作量。
2. 时空滤波
2.1 空间滤波
由于样本数量较少,算法得到的镜面环境光照项只是一个粗略的近似,会产生噪声。空间滤波的目的是通过在像素邻域内共享样本来补偿低样本数量。只有当相邻像素的表面属性匹配时,才会共享样本。
具体操作步骤如下:
基于辐射缓存的实时镜面反射
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



