在这个代码头脑文章http://www.codermind.com/articles/Raytracer-in-C++-Depth-of-field-Fresnel-blobs.html中,关于反射/折射的部分有几个它检查是否传输或反射光线的情况。对于射线追踪折射/反射,不应该透射率+反射率= 1?
它说,在范围0到rand_num 1:
if(rand_num<=reflectance){
//reflect a ray
}else if(rand_num<=reflectance+transmittance){
//transmit a ray through surface
}else{
//diffuse calculation
}
我是反射率+透射率= 1的印象,让else语句会usesless。如果不是1反射率,透射率应该是多少?
入射光有四种情况发生:1)定向反射2)漫反射3)吸收4)透射率 – CodesInChaos 2013-04-28 18:52:26
所以我会设想方向反射将是反射= 1.0f和透射= 0.0f的情况。那么透射率将是透射率= 1.0f和反射率= 0.0f的情况。那么另外两种情况是什么? – 2013-04-28 18:57:53
到codermind的链接不再有效。我不知道发生了什么事。 – 2015-11-29 19:45:01