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
diff options
context:
space:
mode:
authorL. E. Segovia <leonardo.segovia@cs.uns.edu.ar>2018-08-01 21:13:33 +0300
committerL. E. Segovia <leonardo.segovia@cs.uns.edu.ar>2018-08-01 21:13:33 +0300
commit20b2af9cf5a8bb6b15c6652a02665dcd67eec3f6 (patch)
tree91c57739e4920562c77e2ce912691a920babcc55
parent21aefa098f4935597a759e199153e9b55279ff8a (diff)
Remove mode handlingsoc-2018-hair-shader-fixes
This commit reverts 21aefa098f4935597a759e199153e9b55279ff8a. This commit reverts 2ab98cca19cb3acd3da61b5f71a61a1139f1713e.
-rw-r--r--intern/cycles/kernel/closure/bsdf_hair_principled.h31
-rw-r--r--intern/cycles/kernel/svm/svm_closure.h13
-rw-r--r--intern/cycles/render/graph.cpp2
-rw-r--r--intern/cycles/render/nodes.cpp24
-rw-r--r--intern/cycles/render/nodes.h5
-rw-r--r--source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c4
6 files changed, 11 insertions, 68 deletions
diff --git a/intern/cycles/kernel/closure/bsdf_hair_principled.h b/intern/cycles/kernel/closure/bsdf_hair_principled.h
index 04b279230a1..6907b5e7f08 100644
--- a/intern/cycles/kernel/closure/bsdf_hair_principled.h
+++ b/intern/cycles/kernel/closure/bsdf_hair_principled.h
@@ -32,11 +32,6 @@ typedef ccl_addr_space struct PrincipledHairExtra {
float eta;
/* Geometry data. */
float4 geom;
-
- float r;
- float tt;
- float trt;
- float trrt;
} PrincipledHairExtra;
typedef ccl_addr_space struct PrincipledHairBSDF {
@@ -345,34 +340,29 @@ ccl_device float3 bsdf_principled_hair_eval(KernelGlobals *kg,
float4 F;
float Mp, Np;
- float4 weight;
/* Primary specular (R). */
Mp = longitudinal_scattering(angles[0], angles[1], sin_theta_o, cos_theta_o, bsdf->m0_roughness);
Np = azimuthal_scattering(phi, 0, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->r, bsdf->extra->r, bsdf->extra->r, 1.0f);
- F = weight * Ap[0] * Mp * Np;
+ F = Ap[0] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Transmission (TT). */
Mp = longitudinal_scattering(angles[2], angles[3], sin_theta_o, cos_theta_o, 0.25f*bsdf->v);
Np = azimuthal_scattering(phi, 1, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->tt, bsdf->extra->tt, bsdf->extra->tt, 1.0f);
- F += weight * Ap[1] * Mp * Np;
+ F += Ap[1] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Secondary specular (TRT). */
Mp = longitudinal_scattering(angles[4], angles[5], sin_theta_o, cos_theta_o, 4.0f*bsdf->v);
Np = azimuthal_scattering(phi, 2, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->trt, bsdf->extra->trt, bsdf->extra->trt, 1.0f);
- F += weight * Ap[2] * Mp * Np;
+ F += Ap[2] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Residual component (TRRT+). */
Mp = longitudinal_scattering(sin_theta_i, cos_theta_i, sin_theta_o, cos_theta_o, 4.0f*bsdf->v);
Np = M_1_2PI_F;
- weight = make_float4(bsdf->extra->trrt, bsdf->extra->trrt, bsdf->extra->trrt, 1.0f);
- F += weight * Ap[3] * Mp * Np;
+ F += Ap[3] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
*pdf = F.w;
@@ -466,34 +456,29 @@ ccl_device int bsdf_principled_hair_sample(KernelGlobals *kg,
float4 F;
float Mp, Np;
- float4 weight;
/* Primary specular (R). */
Mp = longitudinal_scattering(angles[0], angles[1], sin_theta_o, cos_theta_o, bsdf->m0_roughness);
Np = azimuthal_scattering(phi, 0, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->r, bsdf->extra->r, bsdf->extra->r, 1.0f);
- F = weight * Ap[0] * Mp * Np;
+ F = Ap[0] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Transmission (TT). */
Mp = longitudinal_scattering(angles[2], angles[3], sin_theta_o, cos_theta_o, 0.25f*bsdf->v);
Np = azimuthal_scattering(phi, 1, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->tt, bsdf->extra->tt, bsdf->extra->tt, 1.0f);
- F += weight * Ap[1] * Mp * Np;
+ F += Ap[1] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Secondary specular (TRT). */
Mp = longitudinal_scattering(angles[4], angles[5], sin_theta_o, cos_theta_o, 4.0f*bsdf->v);
Np = azimuthal_scattering(phi, 2, bsdf->s, gamma_o, gamma_t);
- weight = make_float4(bsdf->extra->trt, bsdf->extra->trt, bsdf->extra->trt, 1.0f);
- F += weight * Ap[2] * Mp * Np;
+ F += Ap[2] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
/* Residual component (TRRT+). */
Mp = longitudinal_scattering(sin_theta_i, cos_theta_i, sin_theta_o, cos_theta_o, 4.0f*bsdf->v);
Np = M_1_2PI_F;
- weight = make_float4(bsdf->extra->trrt, bsdf->extra->trrt, bsdf->extra->trrt, 1.0f);
- F += weight * Ap[3] * Mp * Np;
+ F += Ap[3] * Mp * Np;
kernel_assert(isfinite3_safe(float4_to_float3(F)));
*eval = float4_to_float3(F);
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h
index 85c7e93f246..6b2910df67a 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -741,7 +741,6 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
uint4 data_node2 = read_node(kg, offset);
uint4 data_node3 = read_node(kg, offset);
uint4 data_node4 = read_node(kg, offset);
- uint4 data_node5 = read_node(kg, offset);
float3 weight = sd->svm_closure_weight * mix_weight;
@@ -765,8 +764,6 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
random = stack_load_float_default(stack, random_ofs, data_node3.y);
}
- uint primary_specular_ofs, transmission_ofs, secondary_specular_ofs, residual_ofs;
- decode_node_uchar4(data_node4.x, &primary_specular_ofs, &transmission_ofs, &secondary_specular_ofs, &residual_ofs);
PrincipledHairBSDF *bsdf = (PrincipledHairBSDF*)bsdf_alloc(sd, sizeof(PrincipledHairBSDF), weight);
if(bsdf) {
@@ -785,11 +782,6 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
float coat = stack_load_float_default(stack, coat_ofs, data_node2.y);
float m0_roughness = 1.0f - clamp(coat, 0.0f, 1.0f);
- float r = stack_load_float_default(stack, primary_specular_ofs, data_node4.z);
- float tt = stack_load_float_default(stack, transmission_ofs, data_node4.w);
- float trt = stack_load_float_default(stack, secondary_specular_ofs, data_node5.y);
- float trrt = stack_load_float_default(stack, residual_ofs, data_node5.z);
-
bsdf->N = N;
bsdf->roughness = roughness;
bsdf->radial_roughness = radial_roughness;
@@ -798,11 +790,6 @@ ccl_device void svm_node_closure_bsdf(KernelGlobals *kg, ShaderData *sd, float *
bsdf->extra->alpha = alpha;
bsdf->extra->eta = ior;
- bsdf->extra->r = r;
- bsdf->extra->tt = tt;
- bsdf->extra->trt = trt;
- bsdf->extra->trrt = trrt;
-
switch(parametrization) {
case NODE_PRINCIPLED_HAIR_DIRECT_ABSORPTION: {
float3 absorption_coefficient = stack_load_float3(stack, absorption_coefficient_ofs);
diff --git a/intern/cycles/render/graph.cpp b/intern/cycles/render/graph.cpp
index 2b01662a3f8..3a9e2981418 100644
--- a/intern/cycles/render/graph.cpp
+++ b/intern/cycles/render/graph.cpp
@@ -1092,7 +1092,7 @@ int ShaderGraph::get_num_closures()
num_closures += VOLUME_STACK_SIZE;
}
else if(closure_type == CLOSURE_BSDF_HAIR_PRINCIPLED_ID) {
- num_closures += 5;
+ num_closures += 4;
}
else {
++num_closures;
diff --git a/intern/cycles/render/nodes.cpp b/intern/cycles/render/nodes.cpp
index 6358a463210..96e7459a48c 100644
--- a/intern/cycles/render/nodes.cpp
+++ b/intern/cycles/render/nodes.cpp
@@ -3122,11 +3122,6 @@ NODE_DEFINE(PrincipledHairBsdfNode)
SOCKET_IN_FLOAT(random_color, "Random Color", 0.0f);
SOCKET_IN_FLOAT(random, "Random", 0.0f);
- SOCKET_IN_FLOAT(primary_specular, "Primary Specular", 1.0f);
- SOCKET_IN_FLOAT(transmission, "Transmission", 1.0f);
- SOCKET_IN_FLOAT(secondary_specular, "Secondary Specular", 1.0f);
- SOCKET_IN_FLOAT(residual, "Residual", 1.0f);
-
SOCKET_IN_NORMAL(normal, "Normal", make_float3(0.0f, 0.0f, 0.0f), SocketType::LINK_NORMAL);
SOCKET_IN_FLOAT(surface_mix_weight, "SurfaceMixWeight", 0.0f, SocketType::SVM_INTERNAL);
@@ -3172,11 +3167,6 @@ void PrincipledHairBsdfNode::compile(SVMCompiler& compiler)
ShaderInput *random_in = input("Random");
int attr_random = random_in->link ? SVM_STACK_INVALID : compiler.attribute(ATTR_STD_CURVE_RANDOM);
- ShaderInput *primary_specular_in = input("Primary Specular");
- ShaderInput *transmission_in = input("Transmission");
- ShaderInput *secondary_specular_in = input("Secondary Specular");
- ShaderInput *residual_in = input("Residual");
-
/* Encode all parameters into data nodes. */
compiler.add_node(NODE_CLOSURE_BSDF,
/* Socket IDs can be packed 4 at a time into a single data packet */
@@ -3219,22 +3209,12 @@ void PrincipledHairBsdfNode::compile(SVMCompiler& compiler)
compiler.add_node(
compiler.encode_uchar4(
- compiler.stack_assign_if_linked(primary_specular_in),
- compiler.stack_assign_if_linked(transmission_in),
- compiler.stack_assign_if_linked(secondary_specular_in),
- compiler.stack_assign_if_linked(residual_in)),
- attr_random,
- __float_as_uint(primary_specular),
- __float_as_uint(transmission));
-
- compiler.add_node(
- compiler.encode_uchar4(
SVM_STACK_INVALID,
SVM_STACK_INVALID,
SVM_STACK_INVALID,
SVM_STACK_INVALID),
- __float_as_uint(secondary_specular),
- __float_as_uint(residual),
+ attr_random,
+ SVM_STACK_INVALID,
SVM_STACK_INVALID);
}
diff --git a/intern/cycles/render/nodes.h b/intern/cycles/render/nodes.h
index 5b277ed0bb1..28bbe2de05a 100644
--- a/intern/cycles/render/nodes.h
+++ b/intern/cycles/render/nodes.h
@@ -639,11 +639,6 @@ public:
/* Absorption coefficient (unfiltered). */
float3 absorption_coefficient;
- float primary_specular;
- float transmission;
- float secondary_specular;
- float residual;
-
float3 normal;
float surface_mix_weight;
/* If linked, here will be the given random number. */
diff --git a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c
index b64e5a2ca8d..aeeb262a5a6 100644
--- a/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c
+++ b/source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c
@@ -44,10 +44,6 @@ static bNodeSocketTemplate sh_node_bsdf_hair_principled_in[] = {
{ SOCK_FLOAT, 1, N_("Random Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
{ SOCK_FLOAT, 1, N_("Random Roughness"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
{ SOCK_FLOAT, 1, N_("Random"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
- { SOCK_FLOAT, 1, N_("Primary Specular"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
- { SOCK_FLOAT, 1, N_("Transmission"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
- { SOCK_FLOAT, 1, N_("Secondary Specular"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
- { SOCK_FLOAT, 1, N_("Residual"), 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, PROP_FACTOR},
{ -1, 0, "" },
};