5 #if BVH_FEATURE(BVH_HAIR)
6 # define NODE_INTERSECT bvh_node_intersect
8 # define NODE_INTERSECT bvh_aligned_node_intersect
19 #ifndef __KERNEL_GPU__
50 float tmin = ray->tmin;
52 float isect_t = ray->tmax;
54 if (local_isect !=
NULL) {
55 local_isect->num_hits = 0;
61 #if BVH_FEATURE(BVH_MOTION)
62 bvh_instance_motion_push(kg, local_object, ray, &
P, &dir, &idir);
66 object = local_object;
74 int node_addr_child1, traverse_mask;
93 if (traverse_mask == 3) {
95 bool is_closest_child1 = (dist[1] < dist[0]);
96 if (is_closest_child1) {
98 node_addr = node_addr_child1;
99 node_addr_child1 = tmp;
108 if (traverse_mask == 2) {
109 node_addr = node_addr_child1;
111 else if (traverse_mask == 0) {
135 for (; prim_addr < prim_addr2; prim_addr++) {
152 if (triangle_intersect_local(kg,
168 #if BVH_FEATURE(BVH_MOTION)
171 for (; prim_addr < prim_addr2; prim_addr++) {
188 if (motion_triangle_intersect_local(kg,
227 #undef BVH_FUNCTION_NAME
228 #undef BVH_FUNCTION_FEATURES
229 #undef NODE_INTERSECT
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define kernel_assert(cond)
#define ccl_device_inline
ccl_device_inline bool intersection_skip_self_local(ccl_private const RaySelfPrimitives &self, const int prim)
BLI_Stack * traversal_stack
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define kernel_data_fetch(name, index)
#define ENTRYPOINT_SENTINEL
#define BVH_FUNCTION_FULL_NAME(prefix)
ccl_device_inline void bvh_instance_push(KernelGlobals kg, int object, ccl_private const Ray *ray, ccl_private float3 *P, ccl_private float3 *dir, ccl_private float3 *idir)
ccl_device_inline float3 bvh_clamp_direction(float3 dir)
ccl_device_inline float3 bvh_inverse_direction(float3 dir)
@ PRIMITIVE_MOTION_TRIANGLE
@ PATH_RAY_ALL_VISIBILITY
@ SD_OBJECT_TRANSFORM_APPLIED
ccl_device_inline bool BVH_FUNCTION_NAME(KernelGlobals kg, ccl_private const Ray *ray, ccl_private LocalIntersection *local_isect, int local_object, ccl_private uint *lcg_state, int max_hits)
ccl_device_inline int __float_as_int(float f)