В этой статье о сознании кода, http://www.codermind.com/articles/Raytracer-in-C++-Depth-of-field-Fresnel-blobs.html, часть о отражении/преломлении имеет несколько случаев, когда она проверяет, передавать или отражать луч.Для рефракций/отражений лучей, не должен пропускать + отражения = 1?
Это говорит для 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, так что другое заявление будет usesless. Каким должен быть коэффициент пропускания, если не 1-отражение?
Есть четыре вещи, которые происходят с входящим светом: 1) Направленное отражение 2) диффузное отражение 3) поглощение 4) коэффициент пропускания – CodesInChaos
Таким образом, я бы предположил, что отражение направления будет в случае отражения = 1,0f и передачи = 0,0f. Тогда коэффициент пропускания будет иметь вид передачи = 1,0f и коэффициент отражения = 0,0f. Итак, каковы два других случая? –
Ссылка на codermind больше не работает. Интересно, что с ним случилось? –