|
Blender V5.0
|
#include <embree4/rtcore_geometry.h>#include <embree4/rtcore_ray.h>#include <embree4/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"Go to the source code of this file.
Classes | |
| struct | CCLFirstHitContext |
| struct | CCLShadowContext |
| struct | CCLLocalContext |
| struct | CCLVolumeContext |
Macros | |
| #define | RTCTraversable RTCScene |
| #define | rtcGetGeometryUserDataFromTraversable rtcGetGeometryUserDataFromScene |
| #define | rtcTraversableIntersect1 rtcIntersect1 |
| #define | rtcTraversableOccluded1 rtcOccluded1 |
| #define | CYCLES_EMBREE_USED_FEATURES |
| #define | EMBREE_IS_HAIR(x) |
| #define | kernel_embree_filter_intersection_func kernel_embree_filter_intersection_func_impl |
| #define | kernel_embree_filter_occluded_shadow_all_func kernel_embree_filter_occluded_shadow_all_func_impl |
| #define | kernel_embree_filter_occluded_local_func kernel_embree_filter_occluded_local_func_impl |
| #define | kernel_embree_filter_occluded_volume_all_func kernel_embree_filter_occluded_volume_all_func_impl |
Typedefs | |
| using | numhit_t = uint32_t |
| #define CYCLES_EMBREE_USED_FEATURES |
Definition at line 50 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_intersect().
| #define EMBREE_IS_HAIR | ( | x | ) |
Definition at line 58 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 572 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_intersect().
| #define kernel_embree_filter_occluded_local_func kernel_embree_filter_occluded_local_func_impl |
Definition at line 575 of file kernel/device/cpu/bvh.h.
| #define kernel_embree_filter_occluded_shadow_all_func kernel_embree_filter_occluded_shadow_all_func_impl |
Definition at line 573 of file kernel/device/cpu/bvh.h.
| #define kernel_embree_filter_occluded_volume_all_func kernel_embree_filter_occluded_volume_all_func_impl |
Definition at line 576 of file kernel/device/cpu/bvh.h.
| #define rtcGetGeometryUserDataFromTraversable rtcGetGeometryUserDataFromScene |
Definition at line 41 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_convert_hit().
| #define RTCTraversable RTCScene |
Definition at line 40 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_convert_hit().
| #define rtcTraversableIntersect1 rtcIntersect1 |
Definition at line 42 of file kernel/device/cpu/bvh.h.
Referenced by kernel_embree_intersect().
| #define rtcTraversableOccluded1 rtcOccluded1 |
Definition at line 43 of file kernel/device/cpu/bvh.h.
| using numhit_t = uint32_t |
Definition at line 33 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 180 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, kernel_data, kernel_embree_convert_hit(), rtcGetGeometryUserDataFromTraversable, and RTCTraversable.
| 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 155 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, 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, | ||
| const int | object, | ||
| const intptr_t | prim_offset ) |
Definition at line 198 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, 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_forceinline void kernel_embree_filter_intersection_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 219 of file kernel/device/cpu/bvh.h.
References assert, ccl_device_forceinline, 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_local_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 377 of file kernel/device/cpu/bvh.h.
References assert, ccl_device_forceinline, EMBREE_IS_HAIR, LocalIntersection::hits, i, intersection_skip_self_local(), CCLLocalContext::is_sss, kernel_embree_convert_hit(), kernel_embree_convert_sss_hit(), CCLLocalContext::kg, CCLLocalContext::lcg_state, lcg_step_uint(), CCLLocalContext::local_isect, CCLLocalContext::local_object_id, make_float3(), CCLLocalContext::max_hits, min, LocalIntersection::Ng, normalize, LocalIntersection::num_hits, Intersection::object, Intersection::prim, CCLLocalContext::ray, Ray::self, and Intersection::t.
| ccl_device_forceinline void kernel_embree_filter_occluded_shadow_all_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 254 of file kernel/device/cpu/bvh.h.
References assert, ccl_device_forceinline, CURVE_SHADOW_TRANSPARENCY_CUTOFF, i, 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_already_recoded(), intersection_skip_shadow_link(), CCLShadowContext::isect_s, kernel_embree_convert_hit(), CCLShadowContext::kg, max, CCLShadowContext::max_t, CCLShadowContext::max_transparent_hits, CCLShadowContext::num_recorded_hits, CCLShadowContext::num_transparent_hits, Intersection::object, CCLShadowContext::opaque_hit, Intersection::prim, PRIMITIVE_CURVE, CCLShadowContext::ray, SD_HAS_ONLY_VOLUME, SD_HAS_TRANSPARENT_SHADOW, Ray::self, Intersection::t, CCLShadowContext::throughput, Intersection::type, and Intersection::u.
| ccl_device_forceinline void kernel_embree_filter_occluded_volume_all_func_impl | ( | const RTCFilterFunctionNArguments * | args | ) |
Definition at line 476 of file kernel/device/cpu/bvh.h.
References assert, ccl_device_forceinline, intersection_skip_self(), kernel_data_fetch, kernel_embree_convert_hit(), CCLVolumeContext::kg, CCLVolumeContext::num_hits, Intersection::object, Intersection::prim, CCLVolumeContext::ray, SD_OBJECT_HAS_VOLUME, Ray::self, and CCLVolumeContext::vol_isect.
| ccl_device_inline int kernel_embree_get_hit_object | ( | const RTCHit * | hit | ) |
Definition at line 127 of file kernel/device/cpu/bvh.h.
References ccl_device_inline.
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, |
| const ccl_private Ray * | ray, | ||
| const uint | visibility, | ||
| ccl_private Intersection * | isect ) |
Definition at line 582 of file kernel/device/cpu/bvh.h.
References ccl_device_intersect, ccl_private, CYCLES_EMBREE_USED_FEATURES, kernel_data, kernel_embree_convert_hit(), kernel_embree_filter_intersection_func, kernel_embree_setup_rayhit(), CCLFirstHitContext::kg, CCLFirstHitContext::ray, and rtcTraversableIntersect1.
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 132 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, intersection_skip_self_shadow(), kernel_data_fetch, kernel_embree_get_hit_object(), RaySelfPrimitives::light_object, RaySelfPrimitives::object, and Ray::self.
Referenced by 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 102 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, Ray::D, Ray::P, Ray::time, Ray::tmax, Ray::tmin, float3::x, float3::y, and float3::z.
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 118 of file kernel/device/cpu/bvh.h.
References ccl_device_inline, and kernel_embree_setup_ray().
Referenced by kernel_embree_intersect().