diff options
Diffstat (limited to 'intern/cycles/kernel/geom/geom_bvh_traversal.h')
-rw-r--r-- | intern/cycles/kernel/geom/geom_bvh_traversal.h | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h b/intern/cycles/kernel/geom/geom_bvh_traversal.h index 393c9f9542c..d48eda5f554 100644 --- a/intern/cycles/kernel/geom/geom_bvh_traversal.h +++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h @@ -28,13 +28,11 @@ * */ -#define FEATURE(f) (((BVH_FUNCTION_FEATURES) & (f)) != 0) - ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, const Ray *ray, Intersection *isect, const uint visibility -#if FEATURE(BVH_HAIR_MINIMUM_WIDTH) +#if BVH_FEATURE(BVH_HAIR_MINIMUM_WIDTH) , uint *lcg_state, float difl, float extmax @@ -62,7 +60,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, float3 idir = bvh_inverse_direction(dir); int object = OBJECT_NONE; -#if FEATURE(BVH_MOTION) +#if BVH_FEATURE(BVH_MOTION) Transform ob_tfm; #endif @@ -133,7 +131,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, NO_EXTENDED_PRECISION float c1min = max4(min(c1lox, c1hix), min(c1loy, c1hiy), min(c1loz, c1hiz), 0.0f); NO_EXTENDED_PRECISION float c1max = min4(max(c1lox, c1hix), max(c1loy, c1hiy), max(c1loz, c1hiz), t); -#if FEATURE(BVH_HAIR_MINIMUM_WIDTH) +#if BVH_FEATURE(BVH_HAIR_MINIMUM_WIDTH) if(difl != 0.0f) { float hdiff = 1.0f + difl; float ldiff = 1.0f - difl; @@ -174,7 +172,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, ssef minmax = max(max(tminmaxx, tminmaxy), max(tminmaxz, tsplat)); const ssef tminmax = minmax ^ pn; -#if FEATURE(BVH_HAIR_MINIMUM_WIDTH) +#if BVH_FEATURE(BVH_HAIR_MINIMUM_WIDTH) if(difl != 0.0f) { float4 *tminmaxview = (float4*)&tminmax; float &c0min = tminmaxview->x, &c1min = tminmaxview->y; @@ -248,7 +246,7 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, float4 leaf = kernel_tex_fetch(__bvh_nodes, (-nodeAddr-1)*BVH_NODE_SIZE+3); int primAddr = __float_as_int(leaf.x); -#if FEATURE(BVH_INSTANCING) +#if BVH_FEATURE(BVH_INSTANCING) if(primAddr >= 0) { #endif int primAddr2 = __float_as_int(leaf.y); @@ -267,13 +265,13 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, hit = triangle_intersect(kg, &isect_precalc, isect, P, dir, visibility, object, primAddr); break; } -#if FEATURE(BVH_MOTION) +#if BVH_FEATURE(BVH_MOTION) case PRIMITIVE_MOTION_TRIANGLE: { hit = motion_triangle_intersect(kg, isect, P, dir, ray->time, visibility, object, primAddr); break; } #endif -#if FEATURE(BVH_HAIR) +#if BVH_FEATURE(BVH_HAIR) case PRIMITIVE_CURVE: case PRIMITIVE_MOTION_CURVE: { if(kernel_data.curve.curveflags & CURVE_KN_INTERPOLATE) @@ -309,12 +307,12 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, primAddr++; } } -#if FEATURE(BVH_INSTANCING) +#if BVH_FEATURE(BVH_INSTANCING) else { /* instance push */ object = kernel_tex_fetch(__prim_object, -primAddr-1); -#if FEATURE(BVH_MOTION) +#if BVH_FEATURE(BVH_MOTION) bvh_instance_motion_push(kg, object, ray, &P, &dir, &idir, &isect->t, &ob_tfm); #else bvh_instance_push(kg, object, ray, &P, &dir, &idir, &isect->t); @@ -340,12 +338,12 @@ ccl_device bool BVH_FUNCTION_FULL_NAME(BVH)(KernelGlobals *kg, #endif /* FEATURE(BVH_INSTANCING) */ } while(nodeAddr != ENTRYPOINT_SENTINEL); -#if FEATURE(BVH_INSTANCING) +#if BVH_FEATURE(BVH_INSTANCING) if(stackPtr >= 0) { kernel_assert(object != OBJECT_NONE); /* instance pop */ -#if FEATURE(BVH_MOTION) +#if BVH_FEATURE(BVH_MOTION) bvh_instance_motion_pop(kg, object, ray, &P, &dir, &idir, &isect->t, &ob_tfm); #else bvh_instance_pop(kg, object, ray, &P, &dir, &idir, &isect->t); @@ -376,7 +374,7 @@ ccl_device_inline bool BVH_FUNCTION_NAME(KernelGlobals *kg, const Ray *ray, Intersection *isect, const uint visibility -#if FEATURE(BVH_HAIR_MINIMUM_WIDTH) +#if BVH_FEATURE(BVH_HAIR_MINIMUM_WIDTH) , uint *lcg_state, float difl, float extmax @@ -387,7 +385,7 @@ ccl_device_inline bool BVH_FUNCTION_NAME(KernelGlobals *kg, ray, isect, visibility -#if FEATURE(BVH_HAIR_MINIMUM_WIDTH) +#if BVH_FEATURE(BVH_HAIR_MINIMUM_WIDTH) , lcg_state, difl, extmax @@ -395,6 +393,5 @@ ccl_device_inline bool BVH_FUNCTION_NAME(KernelGlobals *kg, ); } -#undef FEATURE #undef BVH_FUNCTION_NAME #undef BVH_FUNCTION_FEATURES |