|
Blender V4.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/integrator/state_util.h"#include "kernel/sample/lcg.h"#include "util/vector.h"Go to the source code of this file.
Classes | |
| struct | CCLFirstHitContext |
| struct | CCLShadowContext |
| struct | CCLLocalContext |
| struct | CCLVolumeContext |
| struct | CCLIntersectContext |
Macros | |
| #define | CYCLES_EMBREE_USED_FEATURES |
| #define | EMBREE_IS_HAIR(x) (x & 1) |
| #define | rtcGetGeometryUserDataFromScene(scene, id) (rtcGetGeometryUserData(rtcGetGeometry(scene, id))) |
| #define | kernel_embree_filter_intersection_func kernel_embree_filter_intersection_func_impl |
Typedefs | |
| using | numhit_t = uint32_t |
| #define CYCLES_EMBREE_USED_FEATURES |
Definition at line 46 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_intersect().
| #define EMBREE_IS_HAIR | ( | x | ) | (x & 1) |
Definition at line 53 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_filter_occluded_local_func_impl().
| #define kernel_embree_filter_intersection_func kernel_embree_filter_intersection_func_impl |
Definition at line 702 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_intersect().
| #define rtcGetGeometryUserDataFromScene | ( | scene, | |
| id ) (rtcGetGeometryUserData(rtcGetGeometry(scene, id))) |
Definition at line 56 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_convert_hit().
Definition at line 39 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 236 of file kernel/device/cpu/bvh.h.
References kernel_data, kernel_embree_convert_hit(), and rtcGetGeometryUserDataFromScene.
| ccl_device_inline void kernel_embree_convert_hit | ( | KernelGlobals | kg, |
| const RTCRay * | ray, | ||
| const RTCHit * | hit, | ||
| Intersection * | isect, | ||
| const intptr_t | prim_offset ) |
Definition at line 211 of file kernel/device/cpu/bvh.h.
References kernel_data_fetch, kernel_embree_get_hit_object(), Intersection::object, Intersection::prim, Intersection::t, Intersection::type, Intersection::u, and Intersection::v.
Referenced by kernel_embree_convert_hit(), kernel_embree_filter_occluded_local_func_impl(), kernel_embree_filter_occluded_shadow_all_func_impl(), kernel_embree_filter_occluded_volume_all_func_impl(), 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, | ||
| const intptr_t | prim_offset ) |
Definition at line 253 of file kernel/device/cpu/bvh.h.
References kernel_data_fetch, Intersection::object, Intersection::prim, Intersection::t, Intersection::type, Intersection::u, and Intersection::v.
Referenced by kernel_embree_filter_occluded_local_func_impl().
| ccl_device void kernel_embree_filter_func_backface_cull | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 613 of file kernel/device/cpu/bvh.h.
References dot(), kernel_embree_is_self_intersection(), CCLFirstHitContext::kg, make_float3(), and CCLFirstHitContext::ray.
| ccl_device_forceinline void kernel_embree_filter_intersection_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 274 of file kernel/device/cpu/bvh.h.
References intersection_skip_shadow_link(), kernel_embree_get_hit_object(), kernel_embree_is_self_intersection(), CCLFirstHitContext::kg, CCLFirstHitContext::ray, and Ray::self.
| ccl_device_forceinline void kernel_embree_filter_occluded_func | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 584 of file kernel/device/cpu/bvh.h.
References kernel_assert, kernel_embree_filter_occluded_local_func_impl(), kernel_embree_filter_occluded_shadow_all_func_impl(), kernel_embree_filter_occluded_volume_all_func_impl(), CCLIntersectContext::RAY_LOCAL, CCLIntersectContext::RAY_REGULAR, CCLIntersectContext::RAY_SHADOW_ALL, CCLIntersectContext::RAY_SSS, CCLIntersectContext::RAY_VOLUME_ALL, and CCLIntersectContext::type.
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 637 of file kernel/device/cpu/bvh.h.
References dot(), kernel_embree_filter_occluded_func(), and make_float3().
| ccl_device_forceinline void kernel_embree_filter_occluded_local_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 427 of file kernel/device/cpu/bvh.h.
References EMBREE_IS_HAIR, LocalIntersection::hits, intersection_skip_self_local(), CCLLocalContext::is_sss, kernel_embree_convert_hit(), kernel_embree_convert_sss_hit(), CCLLocalContext::lcg_state, lcg_step_uint(), CCLLocalContext::local_isect, CCLLocalContext::local_object_id, make_float3(), min, LocalIntersection::Ng, normalize(), LocalIntersection::num_hits, Intersection::object, Intersection::prim, Ray::self, and Intersection::t.
Referenced by kernel_embree_filter_occluded_func().
| ccl_device_forceinline void kernel_embree_filter_occluded_shadow_all_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 313 of file kernel/device/cpu/bvh.h.
References CURVE_SHADOW_TRANSPARENCY_CUTOFF, INTEGRATOR_SHADOW_ISECT_SIZE, INTEGRATOR_STATE_ARRAY, integrator_state_write_shadow_isect(), intersection_curve_shadow_transparency(), intersection_get_shader_flags(), intersection_skip_self_shadow(), intersection_skip_shadow_link(), CCLShadowContext::isect_s, kernel_embree_convert_hit(), max, CCLShadowContext::max_hits, CCLShadowContext::max_t, min, CCLShadowContext::num_hits, CCLShadowContext::num_recorded_hits, Intersection::object, CCLShadowContext::opaque_hit, Intersection::prim, PRIMITIVE_CURVE, SD_HAS_TRANSPARENT_SHADOW, Ray::self, Intersection::t, CCLShadowContext::throughput, Intersection::type, and Intersection::u.
Referenced by kernel_embree_filter_occluded_func().
| ccl_device_forceinline void kernel_embree_filter_occluded_volume_all_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 530 of file kernel/device/cpu/bvh.h.
References intersection_skip_self(), kernel_data_fetch, kernel_embree_convert_hit(), Intersection::object, Intersection::prim, SD_OBJECT_HAS_VOLUME, Ray::self, and CCLVolumeContext::vol_isect.
Referenced by kernel_embree_filter_occluded_func().
| ccl_device_inline int kernel_embree_get_hit_object | ( | const RTCHit * | hit | ) |
Definition at line 183 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_convert_hit(), kernel_embree_filter_intersection_func_impl(), and kernel_embree_is_self_intersection().
| ccl_device_intersect bool kernel_embree_intersect | ( | KernelGlobals | kg, |
| ccl_private const Ray * | ray, | ||
| const uint | visibility, | ||
| ccl_private Intersection * | isect ) |
Definition at line 714 of file kernel/device/cpu/bvh.h.
References CYCLES_EMBREE_USED_FEATURES, kernel_data, kernel_embree_convert_hit(), kernel_embree_filter_intersection_func, kernel_embree_setup_rayhit(), CCLFirstHitContext::kg, CCLFirstHitContext::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, | ||
| const intptr_t | prim_offset ) |
Definition at line 188 of file kernel/device/cpu/bvh.h.
References intersection_skip_self_shadow(), kernel_data_fetch, and kernel_embree_get_hit_object().
Referenced by kernel_embree_filter_func_backface_cull(), and kernel_embree_filter_intersection_func_impl().
| ccl_device_inline void kernel_embree_setup_ray | ( | const Ray & | ray, |
| RTCRay & | rtc_ray, | ||
| const uint | visibility ) |
Definition at line 158 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_setup_rayhit().
| ccl_device_inline void kernel_embree_setup_rayhit | ( | const Ray & | ray, |
| RTCRayHit & | rayhit, | ||
| const uint | visibility ) |
Definition at line 174 of file kernel/device/cpu/bvh.h.
References kernel_embree_setup_ray().
Referenced by kernel_embree_intersect().