Commit: eaa4cdaa4230d69b470d229017bad27c03c9ef14
Author: Brecht Van Lommel
Date:   Thu Jan 13 00:09:22 2022 +0100
Branches: master
https://developer.blender.org/rBeaa4cdaa4230d69b470d229017bad27c03c9ef14

Fix T94758: wrong denoising albedo with BSSRDF retro reflection

===================================================================

M       intern/cycles/kernel/film/passes.h

===================================================================

diff --git a/intern/cycles/kernel/film/passes.h 
b/intern/cycles/kernel/film/passes.h
index 269e3620388..698eae29767 100644
--- a/intern/cycles/kernel/film/passes.h
+++ b/intern/cycles/kernel/film/passes.h
@@ -92,6 +92,14 @@ ccl_device_forceinline void 
kernel_write_denoising_features_surface(
     else if (sc->type == CLOSURE_BSDF_HAIR_PRINCIPLED_ID) {
       closure_albedo *= bsdf_principled_hair_albedo(sc);
     }
+    else if (sc->type == CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID) {
+      /* BSSRDF already accounts for weight, retro-reflection would double up. 
*/
+      ccl_private const PrincipledDiffuseBsdf *bsdf = (ccl_private const 
PrincipledDiffuseBsdf *)
+          sc;
+      if (bsdf->components == PRINCIPLED_DIFFUSE_RETRO_REFLECTION) {
+        continue;
+      }
+    }
 
     if (bsdf_get_specular_roughness_squared(sc) > sqr(0.075f)) {
       diffuse_albedo += closure_albedo;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to