diff options
author | L. E. Segovia <leonardo.segovia@cs.uns.edu.ar> | 2018-08-01 21:13:33 +0300 |
---|---|---|
committer | L. E. Segovia <leonardo.segovia@cs.uns.edu.ar> | 2018-08-01 21:13:33 +0300 |
commit | 20b2af9cf5a8bb6b15c6652a02665dcd67eec3f6 (patch) | |
tree | 91c57739e4920562c77e2ce912691a920babcc55 | |
parent | 21aefa098f4935597a759e199153e9b55279ff8a (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.h | 31 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_closure.h | 13 | ||||
-rw-r--r-- | intern/cycles/render/graph.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/render/nodes.cpp | 24 | ||||
-rw-r--r-- | intern/cycles/render/nodes.h | 5 | ||||
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_bsdf_hair_principled.c | 4 |
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, "" }, }; |