From 277b4f4b9377b7d43e730aa3219ee1a82f9885d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Sch=C3=B6n?= Date: Mon, 22 Feb 2021 17:50:13 +0100 Subject: 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 --- intern/cycles/kernel/shaders/node_principled_bsdf.osl | 2 +- intern/cycles/kernel/svm/svm_closure.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'intern') 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; -- cgit v1.2.3