Blender V4.3
sample.h File Reference

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_noinline_cpu Spectrum light_sample_shader_eval (KernelGlobals kg, IntegratorState state, ccl_private ShaderData *ccl_restrict emission_sd, ccl_private LightSample *ccl_restrict ls, float time)
 
ccl_device_inline bool light_sample_terminate (KernelGlobals kg, ccl_private BsdfEval *ccl_restrict eval, const float rand_terminate)
 
ccl_device_inline float3 shadow_ray_smooth_surface_offset (KernelGlobals kg, ccl_private const ShaderData *ccl_restrict sd, float3 Ng)
 
ccl_device_inline float3 shadow_ray_offset (KernelGlobals kg, ccl_private const ShaderData *ccl_restrict sd, float3 L, ccl_private bool *r_skip_self)
 
ccl_device_inline void shadow_ray_setup (ccl_private const ShaderData *ccl_restrict sd, ccl_private const LightSample *ccl_restrict ls, const float3 P, ccl_private Ray *ray, const bool skip_self)
 
ccl_device_inline void light_sample_to_surface_shadow_ray (KernelGlobals kg, ccl_private const ShaderData *ccl_restrict sd, ccl_private const LightSample *ccl_restrict ls, ccl_private Ray *ray)
 
ccl_device_inline void light_sample_to_volume_shadow_ray (KernelGlobals kg, ccl_private const ShaderData *ccl_restrict sd, ccl_private const LightSample *ccl_restrict ls, const float3 P, ccl_private Ray *ray)
 
ccl_device_inline float light_sample_mis_weight_forward (KernelGlobals kg, const float forward_pdf, const float nee_pdf)
 
ccl_device_inline float light_sample_mis_weight_nee (KernelGlobals kg, const float nee_pdf, const float forward_pdf)
 
ccl_device_inline bool light_sample_from_volume_segment (KernelGlobals kg, const float3 rand, const float time, const float3 P, const float3 D, const float t, const int object_receiver, const int bounce, const uint32_t path_flag, ccl_private LightSample *ls)
 
ccl_device bool light_sample_from_position (KernelGlobals kg, const float3 rand, const float time, const float3 P, const float3 N, const int object_receiver, const int shader_flags, const int bounce, const uint32_t path_flag, ccl_private LightSample *ls)
 
ccl_device_forceinline void light_sample_update (KernelGlobals kg, ccl_private LightSample *ls, const float3 P, const float3 N, const uint32_t path_flag)
 
ccl_device_inline float light_sample_mis_weight_forward_surface (KernelGlobals kg, IntegratorState state, const uint32_t path_flag, const ccl_private ShaderData *sd)
 
ccl_device_inline float light_sample_mis_weight_forward_lamp (KernelGlobals kg, IntegratorState state, const uint32_t path_flag, const ccl_private LightSample *ls, const float3 P)
 
ccl_device_inline float light_sample_mis_weight_forward_distant (KernelGlobals kg, IntegratorState state, const uint32_t path_flag, const ccl_private LightSample *ls)
 
ccl_device_inline float light_sample_mis_weight_forward_background (KernelGlobals kg, IntegratorState state, const uint32_t path_flag)
 

Function Documentation

◆ light_sample_from_position()

ccl_device bool light_sample_from_position ( KernelGlobals kg,
const float3 rand,
const float time,
const float3 P,
const float3 N,
const int object_receiver,
const int shader_flags,
const int bounce,
const uint32_t path_flag,
ccl_private LightSample * ls )

◆ light_sample_from_volume_segment()

ccl_device_inline bool light_sample_from_volume_segment ( KernelGlobals kg,
const float3 rand,
const float time,
const float3 P,
const float3 D,
const float t,
const int object_receiver,
const int bounce,
const uint32_t path_flag,
ccl_private LightSample * ls )

◆ light_sample_mis_weight_forward()

◆ light_sample_mis_weight_forward_background()

◆ light_sample_mis_weight_forward_distant()

ccl_device_inline float light_sample_mis_weight_forward_distant ( KernelGlobals kg,
IntegratorState state,
const uint32_t path_flag,
const ccl_private LightSample * ls )

◆ light_sample_mis_weight_forward_lamp()

◆ light_sample_mis_weight_forward_surface()

◆ light_sample_mis_weight_nee()

ccl_device_inline float light_sample_mis_weight_nee ( KernelGlobals kg,
const float nee_pdf,
const float forward_pdf )

◆ light_sample_shader_eval()

◆ light_sample_terminate()

ccl_device_inline bool light_sample_terminate ( KernelGlobals kg,
ccl_private BsdfEval *ccl_restrict eval,
const float rand_terminate )

◆ light_sample_to_surface_shadow_ray()

ccl_device_inline void light_sample_to_surface_shadow_ray ( KernelGlobals kg,
ccl_private const ShaderData *ccl_restrict sd,
ccl_private const LightSample *ccl_restrict ls,
ccl_private Ray * ray )

Definition at line 257 of file cycles/kernel/light/sample.h.

References P, shadow_ray_offset(), and shadow_ray_setup().

Referenced by integrate_surface_direct_light().

◆ light_sample_to_volume_shadow_ray()

ccl_device_inline void light_sample_to_volume_shadow_ray ( KernelGlobals kg,
ccl_private const ShaderData *ccl_restrict sd,
ccl_private const LightSample *ccl_restrict ls,
const float3 P,
ccl_private Ray * ray )

Definition at line 269 of file cycles/kernel/light/sample.h.

References P, and shadow_ray_setup().

◆ light_sample_update()

◆ shadow_ray_offset()

◆ shadow_ray_setup()

◆ shadow_ray_smooth_surface_offset()