diff --git a/photon_tracer.cpp b/photon_tracer.cpp index 33dbd25..563338c 100644 --- a/photon_tracer.cpp +++ b/photon_tracer.cpp @@ -112,9 +112,8 @@ vec3 PhotonTracer::trace_ray(Ray & r, Scene * s, unsigned int rec_level) const { for (vector::iterator it = photons.begin(); it != photons.end(); it++) { (*it).getColor(red, green, blue); - p_contrib += vec3(red, green, blue); + p_contrib += ((_f->m_mat->m_diffuse / pi()) * vec3(red, green, blue)) / (pi() * (radius * radius)); } - p_contrib /= pi() * (radius * radius); color += (1.0f - _f->m_mat->m_rho) * (((dir_diff_color + p_contrib) * (_f->m_mat->m_diffuse / pi())) + (_f->m_mat->m_specular * dir_spec_color));