diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-11-16 23:28:40 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-11-16 23:30:15 +0300 |
commit | 57c3fbd324a6ecb6a432aef034c814fe45b2f544 (patch) | |
tree | 9f3f5a5156ab633c5166b9921976c3f1e1b55885 /source/blender/nodes | |
parent | 88c88c4610260ef3d00420c3e9fc3c1cd56aad14 (diff) |
Eevee: SSS: Add Christensen-Burley diffusion profile.
This seems to be a correct implementation of the same diffusion profile as Cycles uses by default.
There are a few bias though:
- We consider _A_ the albedo to be 1 when evaluating _s_.
- We use a factor of 0.6 when computing _d_ to match more or less cycles results.
Note that doing per pixel jittering does bias the result even further (loss of energy).
Diffstat (limited to 'source/blender/nodes')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c index 4321c47a092..153c674236c 100644 --- a/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c +++ b/source/blender/nodes/shader/nodes/node_shader_subsurface_scattering.c @@ -58,7 +58,7 @@ static int node_shader_gpu_subsurface_scattering(GPUMaterial *mat, bNode *node, bNodeSocket *socket = BLI_findlink(&node->original->inputs, 2); bNodeSocketValueRGBA *socket_data = socket->default_value; /* For some reason it seems that the socket value is in ARGB format. */ - GPU_material_sss_profile_create(mat, &socket_data->value[1]); + GPU_material_sss_profile_create(mat, &socket_data->value[1], &node->original->custom1); } return GPU_stack_link(mat, node, "node_subsurface_scattering", in, out, GPU_uniform(&node->sss_id)); |