Fix: EEEVEE-Next: Volume lighting

Fix socket_not_white and socket_not_black logic.
(Volume lighting would be disabled if any scatter channel was 0)
Remove unnecesary clamps.
This commit is contained in:
Miguel Pozo 2023-12-13 19:49:31 +01:00
parent 937c4ed2c4
commit 8e9ce4d03d
2 changed files with 6 additions and 11 deletions

@ -16,11 +16,9 @@ static void node_declare(NodeDeclarationBuilder &b)
b.add_output<decl::Shader>("Volume").translation_context(BLT_I18NCONTEXT_ID_ID);
}
#define socket_not_zero(sock) (in[sock].link || (clamp_f(in[sock].vec[0], 0.0f, 1.0f) > 1e-5f))
#define socket_not_zero(sock) (in[sock].link || (in[sock].vec[0] > 1e-5f))
#define socket_not_white(sock) \
(in[sock].link || \
(clamp_f(in[sock].vec[0], 0.0f, 1.0f) < 1.0f && clamp_f(in[sock].vec[1], 0.0f, 1.0f) < 1.0f && \
clamp_f(in[sock].vec[2], 0.0f, 1.0f) < 1.0f))
(in[sock].link || (in[sock].vec[0] < 1.0f || in[sock].vec[1] < 1.0f || in[sock].vec[2] < 1.0f))
static int node_shader_gpu_volume_absorption(GPUMaterial *mat,
bNode *node,

@ -56,15 +56,12 @@ static void attribute_post_process(GPUMaterial *mat,
}
}
#define socket_not_zero(sock) (in[sock].link || (clamp_f(in[sock].vec[0], 0.0f, 1.0f) > 1e-5f))
#define socket_not_zero(sock) (in[sock].link || (in[sock].vec[0] > 1e-5f))
#define socket_not_black(sock) \
(in[sock].link || (clamp_f(in[sock].vec[0], 0.0f, 1.0f) > 1e-5f && \
clamp_f(in[sock].vec[1], 0.0f, 1.0f) > 1e-5f && \
clamp_f(in[sock].vec[2], 0.0f, 1.0f) > 1e-5f))
#define socket_not_white(sock) \
(in[sock].link || \
(clamp_f(in[sock].vec[0], 0.0f, 1.0f) < 1.0f && clamp_f(in[sock].vec[1], 0.0f, 1.0f) < 1.0f && \
clamp_f(in[sock].vec[2], 0.0f, 1.0f) < 1.0f))
(in[sock].vec[0] > 1e-5f || in[sock].vec[1] > 1e-5f || in[sock].vec[2] > 1e-5f))
#define socket_not_white(sock) \
(in[sock].link || (in[sock].vec[0] < 1.0f || in[sock].vec[1] < 1.0f || in[sock].vec[2] < 1.0f))
static int node_shader_gpu_volume_principled(GPUMaterial *mat,
bNode *node,