TL; DR
是的,您可以那样做,只需将结果除以选择方向的概率即可。
完整答案
在路径追踪器中进行采样的主题实际上允许反射和折射的材料都稍微复杂一些。
让我们先从一些背景开始。如果在路径跟踪器中允许使用BSDF(而不仅仅是BRDF),则必须在整个球体上进行积分,而不仅仅是正半球。蒙特卡洛样本可以通过多种策略生成:对于直接照明,可以使用BSDF和光采样;对于间接照明,唯一有意义的策略通常是BSDF采样。采样策略本身通常包含关于采样哪个半球的决定(例如,是否计算反射或折射)。
在最简单的版本中,光采样通常对反射或折射不太重视。它根据光源的特性对光源或环境图(如果有)进行采样。您可以通过仅选择材料具有非零贡献的半球来改善环境图的采样,但是通常忽略其他材料属性。请注意,对于理想的平滑菲涅耳材料,光采样无效。
对于BSDF采样,情况要有趣得多。您描述的情况涉及理想的菲涅尔曲面,其中只有两个起作用的方向(因为菲涅尔BSDF实际上只是两个增量函数的总和)。您可以轻松地将积分拆分为两个部分的总和-一部分反射,另一部分折射。正如您提到的那样,由于我们不想在路径跟踪器中双向导航,因此我们必须选择一个。这意味着我们只想选择一个数字就可以估算出数字的总和。这可以通过离散蒙特卡洛估计来完成:随机选择加数之一,然后除以被选中的概率。在理想情况下,您希望使采样概率与加数成正比,但是由于我们不知道它们的值(如果我们知道它们的值,就不必估算总和),我们只是通过忽略一些因素来估算它们。在这种情况下,我们忽略入射光量,仅使用菲涅耳反射率/透射率作为我们的估计。
因此,对于光滑菲涅尔表面的情况,BSDF采样例程是随机选择一个方向,其概率与菲涅耳反射率成正比,并在某个点上将该方向的结果除以拾取方向的概率。估算器将如下所示:
大号一世(ω一世) F(θ一世)P(ω一世)= L一世(ω一世) F(θ一世)F(θ一世)= L一世(ω一世)
ω一世= (ϕ一世,θ一世)大号一世(ω一世)F(θ一世)P(ω一世)F(θ一世)
对于更复杂的BSDF模型(例如基于微面理论的模型),采样会稍微复杂一些,但是通常也可以应用将整个积分拆分为有限的子积分之和,然后再使用离散蒙特卡洛的想法。