mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Fixes (a) incorrect interpretation of material thickness in the diffuse bsdf and (b) call of `light_eval_transmission` for closures that do not themselves have transmission. Pull Request: https://projects.blender.org/blender/blender/pulls/154819
This commit is contained in:
parent
9a73228a16
commit
b14846d00c
2 changed files with 18 additions and 12 deletions
|
|
@ -143,7 +143,7 @@ ClosureLight bxdf_translucent_light(ClosureUndetermined cl, float3 V, float thic
|
|||
light.ltc_mat = float4(
|
||||
1.0f, 0.0f, 0.0f, 1.0f); /* No transform, just plain cosine distribution. */
|
||||
light.N = -cl.N;
|
||||
light.type = (thickness > 0.0f) ? LIGHT_TRANSLUCENT_WITH_THICKNESS : LIGHT_DIFFUSE;
|
||||
light.type = (thickness != 0.0f) ? LIGHT_TRANSLUCENT_WITH_THICKNESS : LIGHT_DIFFUSE;
|
||||
return light;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,18 +59,24 @@ void forward_lighting_eval(float thickness, float3 &radiance, float3 &transmitta
|
|||
}
|
||||
# endif
|
||||
|
||||
stack.cl[0] = closure_light_new(cl_transmit, V, thickness);
|
||||
if ((cl_transmit.type == CLOSURE_BSDF_TRANSLUCENT_ID ||
|
||||
cl_transmit.type == CLOSURE_BSDF_MICROFACET_GGX_REFRACTION_ID ||
|
||||
cl_transmit.type == CLOSURE_BSSRDF_BURLEY_ID) &&
|
||||
(thickness != 0.0f))
|
||||
{
|
||||
stack.cl[0] = closure_light_new(cl_transmit, V, thickness);
|
||||
|
||||
/* NOTE: Only evaluates `stack.cl[0]`. */
|
||||
light_eval_transmission(stack,
|
||||
g_data.P,
|
||||
g_data.Ng,
|
||||
V,
|
||||
vPz,
|
||||
thickness,
|
||||
receiver_light_set,
|
||||
normal_offset,
|
||||
geometry_offset);
|
||||
/* NOTE: Only evaluates `stack.cl[0]`. */
|
||||
light_eval_transmission(stack,
|
||||
g_data.P,
|
||||
g_data.Ng,
|
||||
V,
|
||||
vPz,
|
||||
thickness,
|
||||
receiver_light_set,
|
||||
normal_offset,
|
||||
geometry_offset);
|
||||
}
|
||||
|
||||
# if defined(MAT_SUBSURFACE)
|
||||
if (cl_transmit.type == CLOSURE_BSSRDF_BURLEY_ID) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue