Blender V5.0
bvh.h File Reference
#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

Functions

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)
ccl_device_inline int kernel_embree_get_hit_object (const RTCHit *hit)
ccl_device_inline bool kernel_embree_is_self_intersection (const KernelGlobals kg, const RTCHit *hit, const Ray *ray, const intptr_t prim_offset)
ccl_device_inline void kernel_embree_convert_hit (KernelGlobals kg, const RTCRay *ray, const RTCHit *hit, Intersection *isect, const intptr_t prim_offset)
ccl_device_inline void kernel_embree_convert_hit (KernelGlobals kg, const RTCRay *ray, const RTCHit *hit, Intersection *isect)
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)
ccl_device_forceinline void kernel_embree_filter_intersection_func_impl (const RTCFilterFunctionNArguments *args)
ccl_device_forceinline void kernel_embree_filter_occluded_shadow_all_func_impl (const RTCFilterFunctionNArguments *args)
ccl_device_forceinline void kernel_embree_filter_occluded_local_func_impl (const RTCFilterFunctionNArguments *args)
ccl_device_forceinline void kernel_embree_filter_occluded_volume_all_func_impl (const RTCFilterFunctionNArguments *args)
ccl_device_intersect bool kernel_embree_intersect (KernelGlobals kg, const ccl_private Ray *ray, const uint visibility, ccl_private Intersection *isect)

Macro Definition Documentation

◆ CYCLES_EMBREE_USED_FEATURES

#define CYCLES_EMBREE_USED_FEATURES
Value:
(RTCFeatureFlags)(RTC_FEATURE_FLAG_TRIANGLE | RTC_FEATURE_FLAG_INSTANCE | \
RTC_FEATURE_FLAG_FILTER_FUNCTION_IN_ARGUMENTS | RTC_FEATURE_FLAG_POINT | \
RTC_FEATURE_FLAG_MOTION_BLUR | RTC_FEATURE_FLAG_ROUND_CATMULL_ROM_CURVE | \
RTC_FEATURE_FLAG_FLAT_CATMULL_ROM_CURVE | \
RTC_FEATURE_FLAG_ROUND_LINEAR_CURVE)

Definition at line 50 of file kernel/device/cpu/bvh.h.

Referenced by kernel_embree_intersect().

◆ EMBREE_IS_HAIR

#define EMBREE_IS_HAIR ( x)
Value:

Definition at line 58 of file kernel/device/cpu/bvh.h.

Referenced by kernel_embree_filter_occluded_local_func_impl().

◆ kernel_embree_filter_intersection_func

#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().

◆ kernel_embree_filter_occluded_local_func

#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.

◆ kernel_embree_filter_occluded_shadow_all_func

#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.

◆ kernel_embree_filter_occluded_volume_all_func

#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.

◆ rtcGetGeometryUserDataFromTraversable

#define rtcGetGeometryUserDataFromTraversable   rtcGetGeometryUserDataFromScene

Definition at line 41 of file kernel/device/cpu/bvh.h.

Referenced by kernel_embree_convert_hit().

◆ RTCTraversable

#define RTCTraversable   RTCScene

Definition at line 40 of file kernel/device/cpu/bvh.h.

Referenced by kernel_embree_convert_hit().

◆ rtcTraversableIntersect1

#define rtcTraversableIntersect1   rtcIntersect1

Definition at line 42 of file kernel/device/cpu/bvh.h.

Referenced by kernel_embree_intersect().

◆ rtcTraversableOccluded1

#define rtcTraversableOccluded1   rtcOccluded1

Definition at line 43 of file kernel/device/cpu/bvh.h.

Typedef Documentation

◆ numhit_t

using numhit_t = uint32_t

Definition at line 33 of file kernel/device/cpu/bvh.h.

Function Documentation

◆ kernel_embree_convert_hit() [1/2]

ccl_device_inline void kernel_embree_convert_hit ( KernelGlobals kg,
const RTCRay * ray,
const RTCHit * hit,
Intersection * isect )

◆ kernel_embree_convert_hit() [2/2]

◆ kernel_embree_convert_sss_hit()

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 )

◆ kernel_embree_filter_intersection_func_impl()

ccl_device_forceinline void kernel_embree_filter_intersection_func_impl ( const RTCFilterFunctionNArguments * args)

◆ kernel_embree_filter_occluded_local_func_impl()

◆ kernel_embree_filter_occluded_shadow_all_func_impl()

◆ kernel_embree_filter_occluded_volume_all_func_impl()

◆ kernel_embree_get_hit_object()

ccl_device_inline int kernel_embree_get_hit_object ( const RTCHit * hit)

◆ kernel_embree_intersect()

◆ kernel_embree_is_self_intersection()

ccl_device_inline bool kernel_embree_is_self_intersection ( const KernelGlobals kg,
const RTCHit * hit,
const Ray * ray,
const intptr_t prim_offset )

◆ kernel_embree_setup_ray()

ccl_device_inline void kernel_embree_setup_ray ( const Ray & ray,
RTCRay & rtc_ray,
const uint visibility )

◆ 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().