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-10-07 18:27:22 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-10-11 19:22:54 +0300
commit73a05ff9e83a31be34d32a92cd5fb4d17994e342 (patch)
tree06f0312affd92e58393216186f1519125a7c302c /intern/cycles/kernel/kernel_types.h
parent40360253aefd1f3451d5b413595bcbb143425b84 (diff)
Cycles: restore Christensen-Burley SSS
There is not enough time before the release to improve Random Walk to handle all cases this was used for, so restore it for now. Since there is no more path splitting in cycles-x, this can increase noise in non-flat areas for the sample number of samples, though fewer rays will be traced also. This is fundamentally a trade-off we made in the new design and why Random Walk is a better fit. However the importance resampling we do now does help to reduce noise. Differential Revision: https://developer.blender.org/D12800
Diffstat (limited to 'intern/cycles/kernel/kernel_types.h')
-rw-r--r--intern/cycles/kernel/kernel_types.h20
1 files changed, 11 insertions, 9 deletions
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 5000a96c331..eb681683d6a 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -261,32 +261,34 @@ enum PathRayFlag {
PATH_RAY_EMISSION = (1 << 19),
/* Perform subsurface scattering. */
- PATH_RAY_SUBSURFACE = (1 << 20),
+ PATH_RAY_SUBSURFACE_RANDOM_WALK = (1 << 20),
+ PATH_RAY_SUBSURFACE_DISK = (1 << 21),
+ PATH_RAY_SUBSURFACE = (PATH_RAY_SUBSURFACE_RANDOM_WALK | PATH_RAY_SUBSURFACE_DISK),
/* Contribute to denoising features. */
- PATH_RAY_DENOISING_FEATURES = (1 << 21),
+ PATH_RAY_DENOISING_FEATURES = (1 << 22),
/* Render pass categories. */
- PATH_RAY_REFLECT_PASS = (1 << 22),
- PATH_RAY_TRANSMISSION_PASS = (1 << 23),
- PATH_RAY_VOLUME_PASS = (1 << 24),
+ PATH_RAY_REFLECT_PASS = (1 << 23),
+ PATH_RAY_TRANSMISSION_PASS = (1 << 24),
+ PATH_RAY_VOLUME_PASS = (1 << 25),
PATH_RAY_ANY_PASS = (PATH_RAY_REFLECT_PASS | PATH_RAY_TRANSMISSION_PASS | PATH_RAY_VOLUME_PASS),
/* Shadow ray is for a light or surface. */
- PATH_RAY_SHADOW_FOR_LIGHT = (1 << 25),
+ PATH_RAY_SHADOW_FOR_LIGHT = (1 << 26),
/* A shadow catcher object was hit and the path was split into two. */
- PATH_RAY_SHADOW_CATCHER_HIT = (1 << 26),
+ PATH_RAY_SHADOW_CATCHER_HIT = (1 << 27),
/* 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 = (1 << 27),
+ PATH_RAY_SHADOW_CATCHER_PASS = (1 << 28),
/* Path is evaluating background for an approximate shadow catcher with non-transparent film. */
- PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1 << 28),
+ PATH_RAY_SHADOW_CATCHER_BACKGROUND = (1 << 29),
};
/* Configure ray visibility bits for rays and objects respectively,