实时光追采样
全库目录221
本文目录11
一条阴影射线只返回一次可见性,半影需要多次样本的统计结果。实时光追按效果分配射线,再用重要性分布与混合追踪减少无效工作。采样和滤波分别决定估计质量,不能把稳定滤波当成正确采样的替代。
有限射线的贡献估计
射线预算
一帧可用成本需要分给:
- 主射线可见性;
- 阴影;
- 反射;
- AO;
- 漫反射与镜面间接光;
- 透射或其他特殊路径。
光栅化适合确定主视图的可见表面。实时项目常使用混合渲染:先光栅化 GBuffer,再从可见表面发少量射线解决阴影、反射或间接光。
同样的 1 spp 在不同效果中含义不同。阴影射线返回可见性;反射射线还要着色命中点;间接光可能继续产生次级弹射,计算路径更长;其方差还取决于采样分布与场景。
Monte Carlo 估计
渲染积分可用随机样本估计:
是采样 PDF。只要满足条件,估计可以无偏,但有限样本存在方差。在独立同分布且方差有限时,标准差按 下降,想把噪声减半通常需要约四倍样本。
因此实时渲染不能只靠加样本,需要让 更接近贡献分布,并复用其他像素和历史帧的信息。
直接光照采样
场景有大量光源时,随机均匀选一盏会浪费样本。可以按光源功率、距离、立体角或估计贡献分配概率。
后继事件估计(NEE) 直接从着色点采样光源并发阴影射线,避免等待随机路径碰巧撞到光源。若同时使用 BRDF 采样与光源采样,可用 多重重要性采样(MIS)组合,降低某一采样策略失配时的方差。
射线锥与材质 LOD
光栅化可以用相邻像素导数选择纹理层级。射线命中着色器中相邻线程可能命中完全不同表面,ddx/ddy 不再可靠。
射线锥或射线微分 估计射线采样足迹,命中后选择合适 Mipmap。若总用 Mip 0,远处反射会闪烁且带宽高;Mip 太粗则细节丢失。
常见实时效果
RT 阴影 从表面向光源采样。面积光需要采样光源表面,单样本会产生随机半影噪声。
RT 反射 对镜面/粗糙方向采样。粗糙度增加会拓宽波瓣,但方差是否变大取决于照明分布与重要性采样,不能只由粗糙度判断。项目可按误差与成本选择探针、屏幕空间反射或其他间接光表示。
RTAO 在法线半球发短射线,估计近场遮挡。距离、Bias 和 Bent 法线会显著影响结果。
实时全局光照与路径追踪 需要对命中点材质继续采样。实时方案常只追踪少量弹射,并使用缓存、Probe、Reservoir 或低分辨率 Trace。
屏幕空间、SDF 与硬件光追
混合追踪可按成本逐级回退:
- 屏幕空间射线使用当前深度/颜色,便宜且能命中屏幕内高细节,但缺少屏外和被遮挡信息;
- SDF/Global Distance Field 覆盖更大空间,几何和材质精度有限;
- 硬件光追访问已纳入加速结构的几何,成本由构建、追踪与命中着色决定;
- 未命中后查询探针、环境光或表面缓存。
每一级的命中语义不同。必须记录命中置信度,避免屏幕空间的错误命中覆盖更可靠的结果。
路径贡献
这是算法伪代码,方向PDF使用立体角测度,BRDF与光源采样混合时另用MIS权重。
direction, pdf = SampleBsdf(surface, random)
if pdf > 0:
hitRadiance = TraceAndShade(surface, direction)
contribution = hitRadiance * bsdf(direction) * abs(dot(normal,direction)) / pdf面积光的密度转换要随几何一起计算。若在光面以面积密度 采样,着色点到采样点距离为 r,光面法线与反向射线夹角余弦为 ,则立体角密度为 ,还要乘选中该光源的概率。距离翻倍会改变同一面积所占立体角,漏掉平方项就会让亮度随距离错误变化。例如面积密度为每平方米0.25,距离2米、光面余弦0.5,对应立体角密度为2;再乘选灯概率0.1,联合密度为0.2。只除以条件密度2会让该灯贡献少十倍,因为采中这盏灯的概率尚未补偿。MIS比较的两份密度必须都换到同一测度。
验证方法
固定场景比较1/2/4 spp与高采样参考,分别测Trace与命中着色。记录PDF、命中距离与材质mip,测试小亮光、Alpha和镜面。Monte Carlo与MIS定义以采样专篇为主归属。
实现状态:正文片段用于解释本页数据流与边界条件;完整宿主的编译、运行及性能测量尚未执行。可运行的独立模型以本页列出的具体测试为准。
相关主题
参考资料
- PBRT 4e §12.4:Area Lights:面光源采样与方向密度接口;面积到立体角变换在正文给出几何推导。