Commit: 379ba346b0acd1ea779365b940fcd01f5ba1165f
Author: Pascal Schoen
Date: Tue Jan 24 09:28:56 2017 +0100
Branches: cycles_disney_brdf
https://developer.blender.org/rB379ba346b0acd1ea779365b940fcd01f5ba1165f
Renamed the Disney BSDF to Principled BSDF.
===================================================================
M intern/cycles/blender/blender_shader.cpp
M intern/cycles/kernel/CMakeLists.txt
M intern/cycles/kernel/closure/bsdf.h
M intern/cycles/kernel/closure/bsdf_microfacet.h
R070 intern/cycles/kernel/closure/bsdf_disney_diffuse.h
intern/cycles/kernel/closure/bsdf_principled_diffuse.h
R068 intern/cycles/kernel/closure/bsdf_disney_sheen.h
intern/cycles/kernel/closure/bsdf_principled_sheen.h
M intern/cycles/kernel/closure/bssrdf.h
M intern/cycles/kernel/kernel_subsurface.h
M intern/cycles/kernel/osl/osl_bssrdf.cpp
M intern/cycles/kernel/osl/osl_closures.cpp
M intern/cycles/kernel/osl/osl_closures.h
M intern/cycles/kernel/shaders/CMakeLists.txt
R091 intern/cycles/kernel/shaders/node_disney_bsdf.osl
intern/cycles/kernel/shaders/node_principled_bsdf.osl
M intern/cycles/kernel/shaders/stdosl.h
M intern/cycles/kernel/svm/svm_closure.h
M intern/cycles/kernel/svm/svm_types.h
M intern/cycles/render/graph.cpp
M intern/cycles/render/nodes.cpp
M intern/cycles/render/nodes.h
M release/scripts/startup/nodeitems_builtins.py
M source/blender/blenkernel/BKE_node.h
M source/blender/blenkernel/intern/node.c
M source/blender/editors/space_node/drawnode.c
M source/blender/gpu/shaders/gpu_shader_material.glsl
M source/blender/makesrna/intern/rna_nodetree.c
M source/blender/nodes/CMakeLists.txt
M source/blender/nodes/NOD_shader.h
M source/blender/nodes/NOD_static_types.h
R080 source/blender/nodes/shader/nodes/node_shader_bsdf_disney.c
source/blender/nodes/shader/nodes/node_shader_bsdf_principled.c
===================================================================
diff --git a/intern/cycles/blender/blender_shader.cpp
b/intern/cycles/blender/blender_shader.cpp
index cb50b74156..a82efb018f 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -517,18 +517,18 @@ static ShaderNode *add_node(Scene *scene,
}
node = hair;
}
- else if(b_node.is_a(&RNA_ShaderNodeBsdfDisney)) {
- BL::ShaderNodeBsdfDisney b_disney_node(b_node);
- DisneyBsdfNode *disney = new DisneyBsdfNode();
- switch (b_disney_node.distribution()) {
- case BL::ShaderNodeBsdfDisney::distribution_GGX:
- disney->distribution =
CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID;
+ else if(b_node.is_a(&RNA_ShaderNodeBsdfPrincipled)) {
+ BL::ShaderNodeBsdfPrincipled b_principled_node(b_node);
+ PrincipledBsdfNode *principled = new PrincipledBsdfNode();
+ switch (b_principled_node.distribution()) {
+ case BL::ShaderNodeBsdfPrincipled::distribution_GGX:
+ principled->distribution =
CLOSURE_BSDF_MICROFACET_GGX_GLASS_ID;
break;
- case BL::ShaderNodeBsdfDisney::distribution_MULTI_GGX:
- disney->distribution =
CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID;
+ case
BL::ShaderNodeBsdfPrincipled::distribution_MULTI_GGX:
+ principled->distribution =
CLOSURE_BSDF_MICROFACET_MULTI_GGX_GLASS_ID;
break;
}
- node = disney;
+ node = principled;
}
else if(b_node.is_a(&RNA_ShaderNodeBsdfTranslucent)) {
node = new TranslucentBsdfNode();
diff --git a/intern/cycles/kernel/CMakeLists.txt
b/intern/cycles/kernel/CMakeLists.txt
index 73485ca651..7f566a660e 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -108,8 +108,8 @@ set(SRC_CLOSURE_HEADERS
closure/bssrdf.h
closure/emissive.h
closure/volume.h
- closure/bsdf_disney_diffuse.h
- closure/bsdf_disney_sheen.h
+ closure/bsdf_principled_diffuse.h
+ closure/bsdf_principled_sheen.h
)
set(SRC_SVM_HEADERS
diff --git a/intern/cycles/kernel/closure/bsdf.h
b/intern/cycles/kernel/closure/bsdf.h
index b46f6a7f1c..04f9e711c7 100644
--- a/intern/cycles/kernel/closure/bsdf.h
+++ b/intern/cycles/kernel/closure/bsdf.h
@@ -27,8 +27,8 @@
#include "../closure/bsdf_ashikhmin_shirley.h"
#include "../closure/bsdf_toon.h"
#include "../closure/bsdf_hair.h"
-#include "../closure/bsdf_disney_diffuse.h"
-#include "../closure/bsdf_disney_sheen.h"
+#include "../closure/bsdf_principled_diffuse.h"
+#include "../closure/bsdf_principled_sheen.h"
#ifdef __SUBSURFACE__
# include "../closure/bssrdf.h"
#endif
@@ -137,13 +137,13 @@ ccl_device_forceinline int bsdf_sample(KernelGlobals *kg,
label = bsdf_hair_transmission_sample(sc, ccl_fetch(sd,
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
eval, omega_in, &domega_in->dx, &domega_in->dy,
pdf);
break;
- case CLOSURE_BSDF_DISNEY_DIFFUSE_ID:
- case CLOSURE_BSDF_BSSRDF_DISNEY_ID:
- label = bsdf_disney_diffuse_sample(sc, ccl_fetch(sd,
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+ case CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID:
+ case CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID:
+ label = bsdf_principled_diffuse_sample(sc,
ccl_fetch(sd, Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd,
dI).dy, randu, randv,
eval, omega_in, &domega_in->dx, &domega_in->dy,
pdf);
break;
- case CLOSURE_BSDF_DISNEY_SHEEN_ID:
- label = bsdf_disney_sheen_sample(sc, ccl_fetch(sd, Ng),
ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
+ case CLOSURE_BSDF_PRINCIPLED_SHEEN_ID:
+ label = bsdf_principled_sheen_sample(sc, ccl_fetch(sd,
Ng), ccl_fetch(sd, I), ccl_fetch(sd, dI).dx, ccl_fetch(sd, dI).dy, randu, randv,
eval, omega_in, &domega_in->dx, &domega_in->dy,
pdf);
break;
#endif
@@ -243,12 +243,12 @@ float3 bsdf_eval(KernelGlobals *kg,
case CLOSURE_BSDF_HAIR_TRANSMISSION_ID:
eval = bsdf_hair_transmission_eval_reflect(sc,
ccl_fetch(sd, I), omega_in, pdf);
break;
- case CLOSURE_BSDF_DISNEY_DIFFUSE_ID:
- case CLOSURE_BSDF_BSSRDF_DISNEY_ID:
- eval = bsdf_disney_diffuse_eval_reflect(sc,
ccl_fetch(sd, I), omega_in, pdf);
+ case CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID:
+ case CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID:
+ eval = bsdf_principled_diffuse_eval_reflect(sc,
ccl_fetch(sd, I), omega_in, pdf);
break;
- case CLOSURE_BSDF_DISNEY_SHEEN_ID:
- eval = bsdf_disney_sheen_eval_reflect(sc,
ccl_fetch(sd, I), omega_in, pdf);
+ case CLOSURE_BSDF_PRINCIPLED_SHEEN_ID:
+ eval = bsdf_principled_sheen_eval_reflect(sc,
ccl_fetch(sd, I), omega_in, pdf);
break;
#endif
#ifdef __VOLUME__
@@ -323,12 +323,12 @@ float3 bsdf_eval(KernelGlobals *kg,
case CLOSURE_BSDF_HAIR_TRANSMISSION_ID:
eval = bsdf_hair_transmission_eval_transmit(sc,
ccl_fetch(sd, I), omega_in, pdf);
break;
- case CLOSURE_BSDF_DISNEY_DIFFUSE_ID:
- case CLOSURE_BSDF_BSSRDF_DISNEY_ID:
- eval = bsdf_disney_diffuse_eval_transmit(sc,
ccl_fetch(sd, I), omega_in, pdf);
+ case CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID:
+ case CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID:
+ eval =
bsdf_principled_diffuse_eval_transmit(sc, ccl_fetch(sd, I), omega_in, pdf);
break;
- case CLOSURE_BSDF_DISNEY_SHEEN_ID:
- eval = bsdf_disney_sheen_eval_transmit(sc,
ccl_fetch(sd, I), omega_in, pdf);
+ case CLOSURE_BSDF_PRINCIPLED_SHEEN_ID:
+ eval = bsdf_principled_sheen_eval_transmit(sc,
ccl_fetch(sd, I), omega_in, pdf);
break;
#endif
#ifdef __VOLUME__
diff --git a/intern/cycles/kernel/closure/bsdf_microfacet.h
b/intern/cycles/kernel/closure/bsdf_microfacet.h
index 38364bb102..9f5a8d03bd 100644
--- a/intern/cycles/kernel/closure/bsdf_microfacet.h
+++ b/intern/cycles/kernel/closure/bsdf_microfacet.h
@@ -398,7 +398,7 @@ ccl_device float3 bsdf_microfacet_ggx_eval_reflect(const
ShaderClosure *sc, cons
float alpha2 = alpha_x * alpha_y;
float D, G1o, G1i;
- bool is_disney_clearcoat = (bsdf->type ==
CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID);
+ bool is_principled_clearcoat = (bsdf->type ==
CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID);
if(alpha_x == alpha_y) {
/* isotropic
@@ -409,7 +409,7 @@ ccl_device float3 bsdf_microfacet_ggx_eval_reflect(const
ShaderClosure *sc, cons
float cosThetaM4 = cosThetaM2 * cosThetaM2;
float tanThetaM2 = (1 - cosThetaM2) / cosThetaM2;
- if(is_disney_clearcoat) {
+ if(is_principled_clearcoat) {
/* use GTR1 for clearcoat */
D = D_GTR1(cosThetaM, bsdf->alpha_x);
@@ -468,7 +468,7 @@ ccl_device float3 bsdf_microfacet_ggx_eval_reflect(const
ShaderClosure *sc, cons
float common = D * 0.25f / cosNO;
float3 F = reflection_color(bsdf, omega_in, m);
- if(is_disney_clearcoat) {
+ if(is_principled_clearcoat) {
F *= 0.25f * bsdf->extra->clearcoat;
}
@@ -602,7 +602,7 @@ ccl_device int bsdf_microfacet_ggx_sample(KernelGlobals
*kg, const ShaderClosure
float alpha2 = alpha_x *
alpha_y;
float D, G1i;
- bool is_disney_clearcoat =
(bsdf->type == CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID);
+ bool is_principled_clearcoat =
(bsdf->type == CLOSURE_BSDF_MICROFACET_GGX_CLEARCOAT_ID);
if(alpha_x == alpha_y) {
/* isotropic */
@@ -613,7 +613,7 @@ ccl_device int bsdf_microfacet_ggx_sample(KernelGlobals
*kg, const ShaderClosure
/* eval BRDF*cosNI */
float cosNI = dot(N,
*omega_in);
- if(is_disney_clearcoat)
{
+
if(is_principled_clearcoat) {
/* use GTR1 for
clearcoat */
D =
D_GTR1(cosThetaM, bsdf->alpha_x);
@@ -662,7 +662,7 @@ ccl_device int bsdf_microfacet_ggx_sample(KernelGlobals
*kg, const ShaderClosure
*pdf = common;
float3 F =
reflection_color(bsdf, *omega_in, m);
- if(is_disney_clearcoat) {
+ if(is_principled_clearcoat) {
F *= 0.25f *
bsdf->extra->clearcoat;
}
diff --git a/intern/cycles/kernel/closure/bsdf_disney_diffuse.h
b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
similarity index 70%
rename from intern/cycles/kernel/closure/bsdf_disney_diffuse.h
rename to intern/cycles/kernel/closure/bsdf_principled_diffuse.h
index ccb5966db1..efa2571345 100644
--- a/intern/cycles/kernel/closure/bsdf_disney_diffuse.h
+++ b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
@@ -14,24 +14,24 @@
* limitations under the License.
*/
-#ifndef __BSDF_DISNEY_DIFFUSE_H__
-#define __BSDF_DISNEY_DIFFUSE_H__
+#ifndef __BSDF_PRINCIPLED_DIFFUSE_H__
+#define __BSDF_PRINCIPLED_DIFFUSE_H__
-/* DISNEY DIFFUSE BRDF
+/* DISNEY PRINCIPLED DIFFUSE BRDF
*
* Shading model by Brent Burley (Disney): "Physically Based Shading at
Disney" (2012)
*/
CCL_NAMESPACE_BEGIN
-typedef ccl_addr_space struct DisneyDiffuseBsdf {
+typedef ccl_addr_space struct PrincipledDiffuseBsdf {
SHADER_CLOSURE_BASE;
float roughness;
float3 N;
-} DisneyDiffuseBsdf;
+} PrincipledDiffuseBsdf;
-ccl_device float3 calculate_disney_diffuse_brdf(const DisneyDiffuseBsdf *bsdf,
+ccl_device float3 calculate_principled_diffuse_brdf(const
PrincipledDiffuseBsdf *bsdf,
float3 N, float3 V, float3 L, float3 H, float *pdf)
{
float NdotL = max(dot(N, L), 0.0f);
@@ -53,16 +53,16 @@ ccl_device float3 calculate_disney_diffuse_brdf(const
DisneyDiffuseBsdf *bsdf,
return make_float3(value, value, value);
}
-ccl_device int bsdf_disney_diffuse_setup(DisneyDiffuseBsdf *bsdf)
+ccl_device int bsdf_principled_diffuse_setup(PrincipledDiffuseBsdf *bsdf)
{
- bsdf->type = CLOSURE_BSDF_DISNEY_DIFFUSE_ID;
+ bsdf->type = CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID;
return SD_BSDF|SD_BSDF_HAS_EVAL;
}
-ccl_device float3 bsdf_disney_diffuse_eval_reflect(const ShaderClosure *sc,
const float3 I,
+ccl_device float3 bsdf_principled_diffuse_eval_reflect(const ShaderClosure
*sc, const float3 I,
const float3 omega_in, float *pdf)
{
- const DisneyDiffuseBsdf *bsdf = (const DisneyDiffuseBsdf *)sc;
+ const PrincipledDiffuseBsdf *bsdf = (const PrincipledDiffuseBsdf *)sc;
float3 N = bsdf->N;
float3 V = I; // outgoing
@@ -71,7 +71,7 @@ ccl_device float3 bsdf_disney_diffuse_eval_reflect(const
ShaderClosure *sc, cons
if(dot(N, omega_in) > 0.0f) {
*pdf = fmaxf(dot(N, omega_in), 0.0f) * M_1_PI_F;
- return calculate_disney_diffuse_brdf(bsdf, N, V, L, H, pdf);
+ return calculate_principled_diffuse_brdf(bsdf, N, V, L, H, pdf);
}
else {
*pdf = 0.0f;
@@ -79,18
@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs