在这篇 Code Mind 文章http://www.codermind.com/articles/Raytracer-in-C++-Depth-of-field-Fresnel-blobs.html中,关于反射/折射的部分有几个案例检查是否透射或反射光线。
它说 rand_num 在 0 到 1 的范围内:
if(rand_num<=reflectance){
//reflect a ray
}else if(rand_num<=reflectance+transmittance){
//transmit a ray through surface
}else{
//diffuse calculation
}
我的印象是反射率+透射率= 1,所以 else 语句将毫无用处。如果不是 1-反射率,透射率应该是多少?