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 <brechtvanlommel@gmail.com>2016-05-22 10:57:36 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2016-05-22 18:36:38 +0300
commitca03eddfcc4416c46afe4b633e5e8364da217fa8 (patch)
tree2569e3f3d6e5aa5669a9036e759e8e465c15d219 /intern/cycles/kernel
parent9b9921b765bca2dacc7ec0633dcf0ab1ab68be68 (diff)
Cleanup: remove Cycles layer bits checking in the kernel.
At some point the idea was that we could have an optimization where we could render multiple render layers without re-exporting the scene, by just updating the layer bits. We are not doing this now and in practice with the available render layer control like exclude layers it's not always possible anyway. This makes it easier to support an arbitrary number of layers in the future (hopefully this summer), and frees up some useful bits in the kernel. Reviewed By: sergey, dingto Differential Revision: https://developer.blender.org/D2020
Diffstat (limited to 'intern/cycles/kernel')
-rw-r--r--intern/cycles/kernel/kernel_path_state.h3
-rw-r--r--intern/cycles/kernel/kernel_types.h11
-rw-r--r--intern/cycles/kernel/kernel_volume.h5
3 files changed, 3 insertions, 16 deletions
diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h
index 540f289eae0..ef3765f7d89 100644
--- a/intern/cycles/kernel/kernel_path_state.h
+++ b/intern/cycles/kernel/kernel_path_state.h
@@ -131,9 +131,6 @@ ccl_device_inline uint path_state_ray_visibility(KernelGlobals *kg, PathState *s
/* todo: this is not supported as its own ray visibility yet */
if(state->flag & PATH_RAY_VOLUME_SCATTER)
flag |= PATH_RAY_DIFFUSE;
- /* for camera visibility, use render layer flags */
- if(flag & PATH_RAY_CAMERA)
- flag |= kernel_data.integrator.layer_flag;
return flag;
}
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index cc261ed37f8..ba50d180acf 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -276,10 +276,7 @@ enum SamplingPattern {
SAMPLING_NUM_PATTERNS,
};
-/* these flags values correspond to raytypes in osl.cpp, so keep them in sync!
- *
- * for ray visibility tests in BVH traversal, the upper 20 bits are used for
- * layer visibility tests. */
+/* these flags values correspond to raytypes in osl.cpp, so keep them in sync! */
enum PathRayFlag {
PATH_RAY_CAMERA = 1,
@@ -303,9 +300,6 @@ enum PathRayFlag {
PATH_RAY_MIS_SKIP = 2048,
PATH_RAY_DIFFUSE_ANCESTOR = 4096,
PATH_RAY_SINGLE_PASS_DONE = 8192,
-
- /* we need layer member flags to be the 20 upper bits */
- PATH_RAY_LAYER_SHIFT = (32-20)
};
/* Closure Label */
@@ -1081,9 +1075,6 @@ typedef struct KernelIntegrator {
/* seed */
int seed;
- /* render layer */
- int layer_flag;
-
/* clamp */
float sample_clamp_direct;
float sample_clamp_indirect;
diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h
index 0af5ff50619..30a978f6c9e 100644
--- a/intern/cycles/kernel/kernel_volume.h
+++ b/intern/cycles/kernel/kernel_volume.h
@@ -1026,14 +1026,13 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg,
int stack_index = 0, enclosed_index = 0;
- const uint visibility = PATH_RAY_ALL_VISIBILITY | kernel_data.integrator.layer_flag;
#ifdef __VOLUME_RECORD_ALL__
Intersection hits[2*VOLUME_STACK_SIZE];
uint num_hits = scene_intersect_volume_all(kg,
&volume_ray,
hits,
2*VOLUME_STACK_SIZE,
- visibility);
+ PATH_RAY_ALL_VISIBILITY);
if(num_hits > 0) {
int enclosed_volumes[VOLUME_STACK_SIZE];
Intersection *isect = hits;
@@ -1083,7 +1082,7 @@ ccl_device void kernel_volume_stack_init(KernelGlobals *kg,
step < 2 * VOLUME_STACK_SIZE)
{
Intersection isect;
- if(!scene_intersect_volume(kg, &volume_ray, &isect, visibility)) {
+ if(!scene_intersect_volume(kg, &volume_ray, &isect, PATH_RAY_ALL_VISIBILITY)) {
break;
}