forked from bartvdbraak/blender
Fix T51956: color noise with principled sss, radius 0 and branched path.
This commit is contained in:
parent
eb420e6b7f
commit
29c8c50442
@ -423,6 +423,11 @@ ccl_device bool bsdf_merge(ShaderClosure *a, ShaderClosure *b)
|
||||
case CLOSURE_BSDF_HAIR_REFLECTION_ID:
|
||||
case CLOSURE_BSDF_HAIR_TRANSMISSION_ID:
|
||||
return bsdf_hair_merge(a, b);
|
||||
#ifdef __PRINCIPLED__
|
||||
case CLOSURE_BSDF_PRINCIPLED_DIFFUSE_ID:
|
||||
case CLOSURE_BSDF_BSSRDF_PRINCIPLED_ID:
|
||||
return bsdf_principled_diffuse_merge(a, b);
|
||||
#endif
|
||||
#ifdef __VOLUME__
|
||||
case CLOSURE_VOLUME_HENYEY_GREENSTEIN_ID:
|
||||
return volume_henyey_greenstein_merge(a, b);
|
||||
|
@ -58,6 +58,14 @@ ccl_device int bsdf_principled_diffuse_setup(PrincipledDiffuseBsdf *bsdf)
|
||||
return SD_BSDF|SD_BSDF_HAS_EVAL;
|
||||
}
|
||||
|
||||
ccl_device bool bsdf_principled_diffuse_merge(const ShaderClosure *a, const ShaderClosure *b)
|
||||
{
|
||||
const PrincipledDiffuseBsdf *bsdf_a = (const PrincipledDiffuseBsdf*)a;
|
||||
const PrincipledDiffuseBsdf *bsdf_b = (const PrincipledDiffuseBsdf*)b;
|
||||
|
||||
return (isequal_float3(bsdf_a->N, bsdf_b->N) && bsdf_a->roughness == bsdf_b->roughness);
|
||||
}
|
||||
|
||||
ccl_device float3 bsdf_principled_diffuse_eval_reflect(const ShaderClosure *sc, const float3 I,
|
||||
const float3 omega_in, float *pdf)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user