Algorithm 路径跟踪:缩放颜色
我正在努力阅读的来源,尤其是有一件事我不能掌握。在第55行,上面写着Algorithm 路径跟踪:缩放颜色,algorithm,graphics,rendering,raytracing,Algorithm,Graphics,Rendering,Raytracing,我正在努力阅读的来源,尤其是有一件事我不能掌握。在第55行,上面写着f=f*(1/p) 这是什么?它有什么作用?更重要的是,为什么它读起来像这样?这是一种使图像更快收敛的启发式方法吗 换句话说,我在文学作品中看到: function radiance ... return Le(x) + R(p) * radiance(rn) 重要的是,R(p)-我真的不明白它是做什么的,但99%的人不是从上面看的f 请,有人能解释一下吗?我想你的答案就在这里,它包含了对smallpt的显式
f=f*(1/p)
这是什么?它有什么作用?更重要的是,为什么它读起来像这样?这是一种使图像更快收敛的启发式方法吗
换句话说,我在文学作品中看到:
function radiance
...
return Le(x) + R(p) * radiance(rn)
重要的是,R(p)
-我真的不明白它是做什么的,但99%的人不是从上面看的f
请,有人能解释一下吗?我想你的答案就在这里,它包含了对
smallpt
的显式照明版本的逐行解释,重新格式化为75%长
简而言之,行#55
位于函数radiance
内,其中沿光线的辐射估计值是估计的
if (++depth>5)
if (erand48(Xi)<p) f=f*(1/p);
else return obj.e;
代码为
*
定义了运算符重载,但没有为/
定义运算符重载,这就是为什么f=f*(1/p)
而不是f=f/p
我想你的答案是这样的,它包含了对smallpt
的显式照明版本的逐行解释,重新格式化为长75%
简而言之,行#55
位于函数radiance
内,其中沿光线的辐射估计值是估计的
if (++depth>5)
if (erand48(Xi)<p) f=f*(1/p);
else return obj.e;
代码为
*
定义了运算符重载,但没有为/
定义运算符重载,这就是为什么f=f*(1/p)
而不是f=f/p
谢谢。我以前读过幻灯片。然而,我的问题是,究竟为什么f=f*(1/p)
?为什么不f=f*(42/p)
或者为什么f
不是r,g,b的最小分量?为什么要使用f=f*(1/p)
来停止?为什么深度不足以退出递归?顺便说一句,我想这件事是在第71行决定的,不是在第55行。谢谢。我以前读过幻灯片。然而,我的问题是,究竟为什么f=f*(1/p)
?为什么不f=f*(42/p)
或者为什么f
不是r,g,b的最小分量?为什么要使用f=f*(1/p)
来停止?为什么深度不足以退出递归?顺便说一句,我认为折射问题是在第71行决定的,而不是在第55行。