Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorPascal Schön <VanCantus>2021-02-22 19:50:13 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-02-22 20:33:05 +0300
commit277b4f4b9377b7d43e730aa3219ee1a82f9885d7 (patch)
tree68555ed0b1ce05a279b9aa79582462f1d0a6079e /intern
parent32073993a8fcd235a5c7a2022dcdd7aef8a49687 (diff)
Fix Principled BSDF specular color for black base color
Specular color is set to black instead of white inside the Principled BSDF when the base color is set to fully black. This is contradictory to the sample code of the Disney BRDF in BRDF Explorer. This patch aligns both implementations. Differential Revision: https://developer.blender.org/D10448
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/shaders/node_principled_bsdf.osl2
-rw-r--r--intern/cycles/kernel/svm/svm_closure.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/intern/cycles/kernel/shaders/node_principled_bsdf.osl b/intern/cycles/kernel/shaders/node_principled_bsdf.osl
index 1711811ac65..23949f406c7 100644
--- a/intern/cycles/kernel/shaders/node_principled_bsdf.osl
+++ b/intern/cycles/kernel/shaders/node_principled_bsdf.osl
@@ -50,7 +50,7 @@ shader node_principled_bsdf(string distribution = "Multiscatter GGX",
float m_cdlum = luminance(BaseColor);
color m_ctint = m_cdlum > 0.0 ? BaseColor / m_cdlum :
- color(0.0, 0.0, 0.0); // normalize lum. to isolate hue+sat
+ color(1.0, 1.0, 1.0); // normalize lum. to isolate hue+sat
/* rotate tangent */
if (AnisotropicRotation != 0.0)
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h
index 1ae94f1d766..f6bf860631e 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -308,7 +308,7 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg,
float3 m_ctint = m_cdlum > 0.0f ?
base_color / m_cdlum :
make_float3(
- 0.0f, 0.0f, 0.0f); // normalize lum. to isolate hue+sat
+ 1.0f, 1.0f, 1.0f); // normalize lum. to isolate hue+sat
float3 tmp_col = make_float3(1.0f, 1.0f, 1.0f) * (1.0f - specular_tint) +
m_ctint * specular_tint;