From af940c68cbed7e840d6ae58f2645ff12ed6abffb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 22 Feb 2021 00:00:56 +0100 Subject: Fix Cycles world volume scattering missing light in some cases With very large distances there were precision / overflow errors, normalize the average albedo to avoid that. This was causing test failures on macOS Arm, but also other architectures had slightly wrong results. Ref T78710 --- intern/cycles/kernel/kernel_volume.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'intern') diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h index 2e73da166b9..e46b0436107 100644 --- a/intern/cycles/kernel/kernel_volume.h +++ b/intern/cycles/kernel/kernel_volume.h @@ -840,7 +840,7 @@ ccl_device void kernel_volume_decoupled_record(KernelGlobals *kg, /* compute average albedo for channel sampling */ if (closure_flag & SD_SCATTER) { - accum_albedo += dt * safe_divide_color(coeff.sigma_s, sigma_t); + accum_albedo += (dt / ray->t) * safe_divide_color(coeff.sigma_s, sigma_t); } /* compute accumulated transmittance */ -- cgit v1.2.3