Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-11-12 18:43:43 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-11-12 22:03:46 +0300
commitb4d9b8b7f8d69165bec0c0006cbc1cd03e769081 (patch)
tree1aee76caaac483c2b103a8a1cb092965c4458f03 /intern/cycles/kernel/types.h
parentef0b8d6306e5e1cddf1d7a2087e5589adcf74172 (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.h18
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 */