From 8cc7f48581d5702925b6bb9c53dee74c5c2742a4 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 28 Feb 2018 04:36:55 +0100 Subject: Cycles: principled absorption color now has more effect at lower values. --- intern/cycles/kernel/shaders/node_principled_volume.osl | 3 ++- intern/cycles/kernel/svm/svm_closure.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'intern/cycles/kernel') diff --git a/intern/cycles/kernel/shaders/node_principled_volume.osl b/intern/cycles/kernel/shaders/node_principled_volume.osl index 609fb95866d..ea8d6ab12c5 100644 --- a/intern/cycles/kernel/shaders/node_principled_volume.osl +++ b/intern/cycles/kernel/shaders/node_principled_volume.osl @@ -51,7 +51,8 @@ shader node_principled_volume( /* Add scattering and absorption closures. */ color scatter_coeff = scatter_color; - color absorption_coeff = max(1.0 - scatter_color, 0.0) * max(1.0 - AbsorptionColor, 0.0); + color absorption_color = sqrt(max(AbsorptionColor, 0.0)); + color absorption_coeff = max(1.0 - scatter_color, 0.0) * max(1.0 - absorption_color, 0.0); Volume = scatter_coeff * density * henyey_greenstein(Anisotropy) + absorption_coeff * density * absorption(); } diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h index 819b256bde0..a54095ed127 100644 --- a/intern/cycles/kernel/svm/svm_closure.h +++ b/intern/cycles/kernel/svm/svm_closure.h @@ -893,7 +893,7 @@ ccl_device void svm_node_principled_volume(KernelGlobals *kg, ShaderData *sd, fl /* Add extinction weight. */ float3 zero = make_float3(0.0f, 0.0f, 0.0f); float3 one = make_float3(1.0f, 1.0f, 1.0f); - float3 absorption_color = stack_load_float3(stack, absorption_color_offset); + float3 absorption_color = max(sqrt(stack_load_float3(stack, absorption_color_offset)), zero); float3 absorption = max(one - color, zero) * max(one - absorption_color, zero); volume_extinction_setup(sd, (color + absorption) * density); } -- cgit v1.2.3