Blender V4.3
point.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_inline bool point_light_sample (const ccl_global KernelLight *klight, const float2 rand, const float3 P, const float3 N, const int shader_flags, ccl_private LightSample *ls)
 
ccl_device_forceinline float sphere_light_pdf (const float d_sq, const float r_sq, const float3 N, const float3 D, const uint32_t path_flag)
 
ccl_device_forceinline void point_light_mnee_sample_update (const ccl_global KernelLight *klight, ccl_private LightSample *ls, const float3 P, const float3 N, const uint32_t path_flag)
 
ccl_device_inline bool point_light_intersect (const ccl_global KernelLight *klight, const ccl_private Ray *ccl_restrict ray, ccl_private float *t)
 
ccl_device_inline bool point_light_sample_from_intersection (const ccl_global KernelLight *klight, const float3 ray_P, const float3 ray_D, const float3 N, const uint32_t path_flag, ccl_private LightSample *ccl_restrict ls)
 
template<bool in_volume_segment>
ccl_device_forceinline bool point_light_tree_parameters (const ccl_global KernelLight *klight, const float3 centroid, const float3 P, ccl_private float &cos_theta_u, ccl_private float2 &distance, ccl_private float3 &point_to_centroid)
 

Function Documentation

◆ point_light_intersect()

ccl_device_inline bool point_light_intersect ( const ccl_global KernelLight * klight,
const ccl_private Ray *ccl_restrict ray,
ccl_private float * t )

◆ point_light_mnee_sample_update()

ccl_device_forceinline void point_light_mnee_sample_update ( const ccl_global KernelLight * klight,
ccl_private LightSample * ls,
const float3 P,
const float3 N,
const uint32_t path_flag )

◆ point_light_sample()

◆ point_light_sample_from_intersection()

ccl_device_inline bool point_light_sample_from_intersection ( const ccl_global KernelLight * klight,
const float3 ray_P,
const float3 ray_D,
const float3 N,
const uint32_t path_flag,
ccl_private LightSample *ccl_restrict ls )

◆ point_light_tree_parameters()

template<bool in_volume_segment>
ccl_device_forceinline bool point_light_tree_parameters ( const ccl_global KernelLight * klight,
const float3 centroid,
const float3 P,
ccl_private float & cos_theta_u,
ccl_private float2 & distance,
ccl_private float3 & point_to_centroid )

Definition at line 191 of file light/point.h.

References cos_from_sin(), one_float2(), P, safe_normalize_len(), sqr(), and sqrtf.

Referenced by light_tree_emitter_importance().

◆ sphere_light_pdf()

ccl_device_forceinline float sphere_light_pdf ( const float d_sq,
const float r_sq,
const float3 N,
const float3 D,
const uint32_t path_flag )