Blender  V3.3
Functions
cycles/kernel/light/sample.h File Reference
#include "kernel/integrator/path_state.h"
#include "kernel/integrator/shader_eval.h"
#include "kernel/light/light.h"
#include "kernel/sample/mapping.h"
#include "kernel/sample/mis.h"

Go to the source code of this file.

Functions

CCL_NAMESPACE_BEGIN ccl_device_noinline_cpu float3 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_is_light (ccl_private const LightSample *ccl_restrict ls)
 
ccl_device_inline bool light_sample_terminate (KernelGlobals kg, ccl_private const LightSample *ccl_restrict ls, 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)
 

Function Documentation

◆ light_sample_is_light()

ccl_device_inline bool light_sample_is_light ( ccl_private const LightSample *ccl_restrict  ls)

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

References LIGHT_BACKGROUND, and PRIM_NONE.

◆ light_sample_mis_weight_forward()

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

◆ 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 const LightSample *ccl_restrict  ls,
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 263 of file cycles/kernel/light/sample.h.

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

◆ 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 275 of file cycles/kernel/light/sample.h.

References P(), and shadow_ray_setup().

◆ shadow_ray_offset()

ccl_device_inline float3 shadow_ray_offset ( KernelGlobals  kg,
ccl_private const ShaderData *ccl_restrict  sd,
float3  L,
ccl_private bool r_skip_self 
)

◆ shadow_ray_setup()

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 
)

◆ shadow_ray_smooth_surface_offset()

ccl_device_inline float3 shadow_ray_smooth_surface_offset ( KernelGlobals  kg,
ccl_private const ShaderData *ccl_restrict  sd,
float3  Ng 
)