Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/bvh/bvh_embree.cpp
| Show First 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | |||||
| static void rtc_filter_occluded_func(const RTCFilterFunctionNArguments *args) | static void rtc_filter_occluded_func(const RTCFilterFunctionNArguments *args) | ||||
| { | { | ||||
| /* Current implementation in Cycles assumes only single-ray intersection queries. */ | /* Current implementation in Cycles assumes only single-ray intersection queries. */ | ||||
| assert(args->N == 1); | assert(args->N == 1); | ||||
| const RTCRay *ray = (RTCRay *)args->ray; | const RTCRay *ray = (RTCRay *)args->ray; | ||||
| RTCHit *hit = (RTCHit *)args->hit; | RTCHit *hit = (RTCHit *)args->hit; | ||||
| CCLIntersectContext *ctx = ((IntersectContext *)args->context)->userRayExt; | CCLIntersectContext *ctx = ((IntersectContext *)args->context)->userRayExt; | ||||
| const KernelGlobals *kg = ctx->kg; | const KernelGlobalsCPU *kg = ctx->kg; | ||||
| switch (ctx->type) { | switch (ctx->type) { | ||||
| case CCLIntersectContext::RAY_SHADOW_ALL: { | case CCLIntersectContext::RAY_SHADOW_ALL: { | ||||
| Intersection current_isect; | Intersection current_isect; | ||||
| kernel_embree_convert_hit(kg, ray, hit, ¤t_isect); | kernel_embree_convert_hit(kg, ray, hit, ¤t_isect); | ||||
| /* If no transparent shadows, all light is blocked. */ | /* If no transparent shadows, all light is blocked. */ | ||||
| const int flags = intersection_get_shader_flags(kg, current_isect.prim, current_isect.type); | const int flags = intersection_get_shader_flags(kg, current_isect.prim, current_isect.type); | ||||
| ▲ Show 20 Lines • Show All 627 Lines • Show Last 20 Lines | |||||