Blender
V3.3
|
#include <embree3/rtcore_ray.h>
#include <embree3/rtcore_scene.h>
#include "kernel/device/cpu/compat.h"
#include "kernel/device/cpu/globals.h"
#include "kernel/bvh/types.h"
#include "kernel/bvh/util.h"
#include "kernel/geom/object.h"
#include "kernel/integrator/state.h"
#include "kernel/sample/lcg.h"
#include "util/vector.h"
Go to the source code of this file.
Classes | |
struct | CCLIntersectContext |
class | IntersectContext |
Macros | |
#define | EMBREE_IS_HAIR(x) (x & 1) |
Definition at line 24 of file kernel/device/cpu/bvh.h.
ccl_device_inline void kernel_embree_convert_hit | ( | KernelGlobals | kg, |
const RTCRay * | ray, | ||
const RTCHit * | hit, | ||
Intersection * | isect | ||
) |
Definition at line 150 of file kernel/device/cpu/bvh.h.
References kernel_data, kernel_data_fetch, Intersection::object, Intersection::prim, Intersection::t, Intersection::type, Intersection::u, and Intersection::v.
Referenced by kernel_embree_filter_occluded_func(), and kernel_embree_intersect().
ccl_device_inline void kernel_embree_convert_sss_hit | ( | KernelGlobals | kg, |
const RTCRay * | ray, | ||
const RTCHit * | hit, | ||
Intersection * | isect, | ||
int | object | ||
) |
Definition at line 184 of file kernel/device/cpu/bvh.h.
References kernel_data, kernel_data_fetch, Intersection::object, Intersection::prim, Intersection::t, Intersection::type, Intersection::u, and Intersection::v.
Referenced by kernel_embree_filter_occluded_func().
ccl_device void kernel_embree_filter_func_backface_cull | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 420 of file kernel/device/cpu/bvh.h.
References blender::math::dot(), kernel_embree_is_self_intersection(), CCLIntersectContext::kg, make_float3, and CCLIntersectContext::ray.
ccl_device void kernel_embree_filter_intersection_func | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 204 of file kernel/device/cpu/bvh.h.
References kernel_embree_is_self_intersection().
ccl_device void kernel_embree_filter_occluded_func | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 224 of file kernel/device/cpu/bvh.h.
References CURVE_SHADOW_TRANSPARENCY_CUTOFF, EMBREE_IS_HAIR, LocalIntersection::hits, INTEGRATOR_SHADOW_ISECT_SIZE, intersection_curve_shadow_transparency(), intersection_get_shader_flags(), intersection_skip_self(), intersection_skip_self_local(), intersection_skip_self_shadow(), CCLIntersectContext::isect_s, kernel_data_fetch, kernel_embree_convert_hit(), kernel_embree_convert_sss_hit(), kernel_embree_is_self_intersection(), CCLIntersectContext::kg, CCLIntersectContext::lcg_state, lcg_step_uint(), CCLIntersectContext::local_isect, CCLIntersectContext::local_object_id, make_float3, max, CCLIntersectContext::max_hits, CCLIntersectContext::max_t, min, LocalIntersection::Ng, blender::math::normalize(), CCLIntersectContext::num_hits, LocalIntersection::num_hits, CCLIntersectContext::num_recorded_hits, Intersection::object, CCLIntersectContext::opaque_hit, Intersection::prim, PRIMITIVE_CURVE, CCLIntersectContext::ray, CCLIntersectContext::RAY_LOCAL, CCLIntersectContext::RAY_REGULAR, CCLIntersectContext::RAY_SHADOW_ALL, CCLIntersectContext::RAY_SSS, CCLIntersectContext::RAY_VOLUME_ALL, SD_HAS_TRANSPARENT_SHADOW, SD_OBJECT_HAS_VOLUME, Ray::self, Intersection::t, CCLIntersectContext::throughput, CCLIntersectContext::type, Intersection::type, and Intersection::u.
Referenced by kernel_embree_filter_occluded_func_backface_cull().
ccl_device void kernel_embree_filter_occluded_func_backface_cull | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 441 of file kernel/device/cpu/bvh.h.
References blender::math::dot(), kernel_embree_filter_occluded_func(), and make_float3.
ccl_device_intersect bool kernel_embree_intersect | ( | KernelGlobals | kg, |
ccl_private const Ray * | ray, | ||
const uint | visibility, | ||
ccl_private Intersection * | isect | ||
) |
Definition at line 459 of file kernel/device/cpu/bvh.h.
References IntersectContext::context, kernel_data, kernel_embree_convert_hit(), kernel_embree_setup_rayhit(), CCLIntersectContext::ray, and CCLIntersectContext::RAY_REGULAR.
Referenced by scene_intersect().
ccl_device_inline bool kernel_embree_is_self_intersection | ( | const KernelGlobals | kg, |
const RTCHit * | hit, | ||
const Ray * | ray | ||
) |
Definition at line 113 of file kernel/device/cpu/bvh.h.
References intersection_skip_self_shadow(), kernel_data, kernel_data_fetch, RaySelfPrimitives::light_object, RaySelfPrimitives::object, and Ray::self.
Referenced by kernel_embree_filter_func_backface_cull(), kernel_embree_filter_intersection_func(), and kernel_embree_filter_occluded_func().
ccl_device_inline void kernel_embree_setup_ray | ( | const Ray & | ray, |
RTCRay & | rtc_ray, | ||
const uint | visibility | ||
) |
ccl_device_inline void kernel_embree_setup_rayhit | ( | const Ray & | ray, |
RTCRayHit & | rayhit, | ||
const uint | visibility | ||
) |
Definition at line 104 of file kernel/device/cpu/bvh.h.
References kernel_embree_setup_ray().
Referenced by kernel_embree_intersect().