[Bf-blender-cvs] [c1e80528b4c] principled-v2: Use uniform random sampling for sheen

Lukas Stockner noreply at git.blender.org
Mon Jul 4 23:56:14 CEST 2022


Commit: c1e80528b4ccdeb266ac83c74051a63694a088d3
Author: Lukas Stockner
Date:   Mon Jul 4 23:31:48 2022 +0200
Branches: principled-v2
https://developer.blender.org/rBc1e80528b4ccdeb266ac83c74051a63694a088d3

Use uniform random sampling for sheen

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

M	intern/cycles/kernel/closure/bsdf_principled_sheen.h

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

diff --git a/intern/cycles/kernel/closure/bsdf_principled_sheen.h b/intern/cycles/kernel/closure/bsdf_principled_sheen.h
index fa580a540cb..09a82553296 100644
--- a/intern/cycles/kernel/closure/bsdf_principled_sheen.h
+++ b/intern/cycles/kernel/closure/bsdf_principled_sheen.h
@@ -157,7 +157,7 @@ ccl_device float3 bsdf_principled_sheen_eval_reflect(ccl_private const ShaderClo
   float3 H = normalize(L + V);
 
   if (dot(N, omega_in) > 0.0f) {
-    *pdf = fmaxf(dot(N, omega_in), 0.0f) * M_1_PI_F;
+    *pdf = M_1_2PI_F;
     if (bsdf->type == CLOSURE_BSDF_PRINCIPLED_SHEEN_V2_ID) {
       return sheen_v2_eval(N, V, L, H, bsdf->roughness, pdf);
     }
@@ -197,7 +197,7 @@ ccl_device int bsdf_principled_sheen_sample(ccl_private const ShaderClosure *sc,
 
   float3 N = bsdf->N;
 
-  sample_cos_hemisphere(N, randu, randv, omega_in, pdf);
+  sample_uniform_hemisphere(N, randu, randv, omega_in, pdf);
 
   if (dot(Ng, *omega_in) > 0) {
     float3 H = normalize(I + *omega_in);



More information about the Bf-blender-cvs mailing list