diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-11-12 18:43:43 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-11-12 22:03:46 +0300 |
commit | b4d9b8b7f8d69165bec0c0006cbc1cd03e769081 (patch) | |
tree | 1aee76caaac483c2b103a8a1cb092965c4458f03 /intern/cycles/kernel/types.h | |
parent | ef0b8d6306e5e1cddf1d7a2087e5589adcf74172 (diff) |
Fix T91893, T92455: wrong transmission pass with hair and multiscatter glass
We need to increase GPU memory usage a bit. Unfortunately we can't get away
with writing either reflection or transmission passes because these BSDFs may
scatter in either direction but still must be in a fixed reflection or
transmission category to match up with the color passes.
Diffstat (limited to 'intern/cycles/kernel/types.h')
-rw-r--r-- | intern/cycles/kernel/types.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/intern/cycles/kernel/types.h b/intern/cycles/kernel/types.h index 4d4246d2a74..01700add22b 100644 --- a/intern/cycles/kernel/types.h +++ b/intern/cycles/kernel/types.h @@ -286,27 +286,26 @@ enum PathRayFlag { PATH_RAY_DENOISING_FEATURES = (1U << 23U), /* Render pass categories. */ - PATH_RAY_REFLECT_PASS = (1U << 24U), - PATH_RAY_TRANSMISSION_PASS = (1U << 25U), - PATH_RAY_VOLUME_PASS = (1U << 26U), - PATH_RAY_ANY_PASS = (PATH_RAY_REFLECT_PASS | PATH_RAY_TRANSMISSION_PASS | PATH_RAY_VOLUME_PASS), + PATH_RAY_SURFACE_PASS = (1U << 24U), + PATH_RAY_VOLUME_PASS = (1U << 25U), + PATH_RAY_ANY_PASS = (PATH_RAY_SURFACE_PASS | PATH_RAY_VOLUME_PASS), /* Shadow ray is for a light or surface, or AO. */ - PATH_RAY_SHADOW_FOR_LIGHT = (1U << 27U), - PATH_RAY_SHADOW_FOR_AO = (1U << 28U), + PATH_RAY_SHADOW_FOR_LIGHT = (1U << 26U), + PATH_RAY_SHADOW_FOR_AO = (1U << 27U), /* A shadow catcher object was hit and the path was split into two. */ - PATH_RAY_SHADOW_CATCHER_HIT = (1U << 29U), + PATH_RAY_SHADOW_CATCHER_HIT = (1U << 28U), /* A shadow catcher object was hit and this path traces only shadow catchers, writing them into * their dedicated pass for later division. * * NOTE: Is not covered with `PATH_RAY_ANY_PASS` because shadow catcher does special handling * which is separate from the light passes. */ - PATH_RAY_SHADOW_CATCHER_PASS = (1U << 30U), + PATH_RAY_SHADOW_CATCHER_PASS = (1U << 29U), /* Path is evaluating background for an approximate shadow catcher with non-transparent film. */ - PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1U << 31U), + PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1U << 30U), }; /* Configure ray visibility bits for rays and objects respectively, @@ -428,6 +427,7 @@ typedef enum CryptomatteType { typedef struct BsdfEval { float3 diffuse; float3 glossy; + float3 sum; } BsdfEval; /* Closure Filter */ |