在這個代碼頭腦文章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