文章内容是小编个人当前对PBRT-V3的理解,可能和实际有偏差。
一、概述
PBRT-V3中最直观最常用到采样的地方有:
采样0,对单位正方形进行采样;
采样1,对Film上的每个像素点进行多次采样;
采样2,对交点处的BSDF进行采样;
采样3,对具体光源进行采样;
采样4,从所有光源中随机选取一个光源;
另外一个不怎么常用到的采样是:
采样5,Metropolis Sampling(这个是用在MLT Integrator中)
二、采样0,对单位正方形进行采样
对单位正方形进行采样,是为了从单位正方形上获取一个采样点。
“单位正方形采样”的方式很多,如上图所示的包含三种采样方式:随机采样;均匀分层采样;抖动分层采样。
按照PBRT-V3上介绍的相关采样方式有:RandomSampler, StratifiedSampler, HaltonSampler, ZeroTwoSequenceSampler, MaxMinDistSampler, SobolSampler, ……
(不同的采样方式之间的区别在于:采样点在单位正方形上的分布不一样)。
二、采样1,采样2,采样3
采样1,对Film上的每个像素点进行多次采样;
采样2,对交点处的BSDF进行采样;
采样3,对具体光源进行采样;
涉及这三种采样的情况如下方图示:
2.1 采样1,对Film上的每个像素点进行多次采样
这个是给定一个像素点位置,然后在该像素点所在的单位正方形进行采样,获取采样点。(即:“采样1”是直接使用“采样0”)
相关代码截图: