一直没有发“翻译类”的博文,借此机会,翻译PBRT-V3的14.3章节。
14.3 Direct Lighting(直接光照)
在介绍完全一般性的光传播方程之前,我们先实现DirectLightingIntegrator。
不出所料,这个积分器只考虑“直接光照”。“直接光照”是指从光源直接传播到渲染点(撞击点)的光。
这个积分器忽略除基本的镜面反射和镜面折射之外的本身不发光物体的“间接光照”(换句话说,只考虑“镜面反射和镜面折射”的“间接光照“)。
以这个积分器开始(学习),可以使我们(重点)关注直接光照的一些重要细节,而不用关心完整的光传播方程。而且,这里实现的一些程序将会在后续求解完整的光传播方程的积分器中再次用到。图14.12展示的是只用直接光照渲染的San Miguel场景。
这个积分器提供了两种不同的计算直接光照的策略。每种策略都能在一个撞击点的一个给定方向上计算出反射辐射率的一个不偏的估值。
LightStrategy这个枚举记录着使用的是哪种计算策略。
第一种策略是UniformSampleAll。(这种策略会)循环