为什么要学“采样”?
这个问题的答案估计很多。每个人都可能自己的答案,当然也有官方标准的答案。
别人的答案、或者官方标准的答案,与我何干?
我只是在学习“Ambient Occlusion”时需要对光线撞击点处的上半球面进行采样,以便得到阴影光线的方向。仅此而已。
参考书籍《Ray Tracing from the Ground Up》。
书上有关于如下知识点的详细介绍,咱不赘述。
在这里,我们只做三件事情:
1,对比各种采样技术:罗列各种采样技术,对比它们在单位正方形上的采样结果。
2,“采样”类的架构:定义Sampler为基类,各种采样技术对应的类都是继承Sampler。明确子类和父类的“分工”。
3,映射采样点:将采样点从单位正方形映射到单位圆和单位半球(这个结果后面会用到)。
70.1 采样技术的分类
我们这里会罗列的采样技术有:Random Sampling、Jittered Sampling、n-Rooks Sampling、Multi-Jittered Sampling、Hammersiley Sampling