Blender  V2.93
Macros | Functions
kernel_accumulate.h File Reference

Go to the source code of this file.

Macros

#define safe_float3_add(f, v)   (f) += (v)
 
#define safe_float_add(f, v)   (f) += (v)
 

Functions

CCL_NAMESPACE_BEGIN ccl_device float3 shader_bsdf_transparency (KernelGlobals *kg, const ShaderData *sd)
 
ccl_device_inline void bsdf_eval_init (BsdfEval *eval, ClosureType type, float3 value, int use_light_pass)
 
ccl_device_inline void bsdf_eval_accum (BsdfEval *eval, ClosureType type, float3 value, float mis_weight)
 
ccl_device_inline bool bsdf_eval_is_zero (BsdfEval *eval)
 
ccl_device_inline void bsdf_eval_mis (BsdfEval *eval, float value)
 
ccl_device_inline void bsdf_eval_mul (BsdfEval *eval, float value)
 
ccl_device_inline void bsdf_eval_mul3 (BsdfEval *eval, float3 value)
 
ccl_device_inline float3 bsdf_eval_sum (const BsdfEval *eval)
 
ccl_device_inline void path_radiance_init (KernelGlobals *kg, PathRadiance *L)
 
ccl_device_inline void path_radiance_bsdf_bounce (KernelGlobals *kg, PathRadianceState *L_state, ccl_addr_space float3 *throughput, BsdfEval *bsdf_eval, float bsdf_pdf, int bounce, int bsdf_label)
 
ccl_device_inline void path_radiance_accum_emission (KernelGlobals *kg, PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, float3 value)
 
ccl_device_inline void path_radiance_accum_ao (KernelGlobals *kg, PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, float3 alpha, float3 bsdf, float3 ao)
 
ccl_device_inline void path_radiance_accum_total_ao (PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, float3 bsdf)
 
ccl_device_inline void path_radiance_accum_light (KernelGlobals *kg, PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, BsdfEval *bsdf_eval, float3 shadow, float shadow_fac, bool is_lamp)
 
ccl_device_inline void path_radiance_accum_total_light (PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, const BsdfEval *bsdf_eval)
 
ccl_device_inline void path_radiance_accum_background (KernelGlobals *kg, PathRadiance *L, ccl_addr_space PathState *state, float3 throughput, float3 value)
 
ccl_device_inline void path_radiance_accum_transparent (PathRadiance *L, ccl_addr_space PathState *state, float3 throughput)
 
ccl_device_inline void path_radiance_sum_indirect (PathRadiance *L)
 
ccl_device_inline void path_radiance_reset_indirect (PathRadiance *L)
 
ccl_device_inline void path_radiance_copy_indirect (PathRadiance *L, const PathRadiance *L_src)
 
ccl_device_inline float3 path_radiance_clamp_and_sum (KernelGlobals *kg, PathRadiance *L, float *alpha)
 
ccl_device_inline void path_radiance_split_denoising (KernelGlobals *kg, PathRadiance *L, float3 *noisy, float3 *clean)
 
ccl_device_inline void path_radiance_accum_sample (PathRadiance *L, PathRadiance *L_sample)
 

Macro Definition Documentation

◆ safe_float3_add

#define safe_float3_add (   f,
  v 
)    (f) += (v)

◆ safe_float_add

#define safe_float_add (   f,
  v 
)    (f) += (v)

Function Documentation

◆ bsdf_eval_accum()

ccl_device_inline void bsdf_eval_accum ( BsdfEval eval,
ClosureType  type,
float3  value,
float  mis_weight 
)

◆ bsdf_eval_init()

ccl_device_inline void bsdf_eval_init ( BsdfEval eval,
ClosureType  type,
float3  value,
int  use_light_pass 
)

◆ bsdf_eval_is_zero()

ccl_device_inline bool bsdf_eval_is_zero ( BsdfEval eval)

◆ bsdf_eval_mis()

ccl_device_inline void bsdf_eval_mis ( BsdfEval eval,
float  value 
)

◆ bsdf_eval_mul()

ccl_device_inline void bsdf_eval_mul ( BsdfEval eval,
float  value 
)

Definition at line 123 of file kernel_accumulate.h.

References bsdf_eval_mis(), and BsdfEval::sum_no_mis.

Referenced by direct_emission().

◆ bsdf_eval_mul3()

ccl_device_inline void bsdf_eval_mul3 ( BsdfEval eval,
float3  value 
)

◆ bsdf_eval_sum()

ccl_device_inline float3 bsdf_eval_sum ( const BsdfEval eval)

◆ path_radiance_accum_ao()

ccl_device_inline void path_radiance_accum_ao ( KernelGlobals *  kg,
PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
float3  alpha,
float3  bsdf,
float3  ao 
)

Definition at line 337 of file kernel_accumulate.h.

References alpha, L, PATH_RAY_SHADOW_CATCHER, PATH_RAY_STORE_SHADOW_INFO, and state.

Referenced by kernel_path_ao().

◆ path_radiance_accum_background()

ccl_device_inline void path_radiance_accum_background ( KernelGlobals *  kg,
PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
float3  value 
)

◆ path_radiance_accum_emission()

ccl_device_inline void path_radiance_accum_emission ( KernelGlobals *  kg,
PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
float3  value 
)

Definition at line 304 of file kernel_accumulate.h.

References kg, L, PATH_RAY_SHADOW_CATCHER, and state.

Referenced by indirect_lamp_emission(), and kernel_path_shader_apply().

◆ path_radiance_accum_light()

ccl_device_inline void path_radiance_accum_light ( KernelGlobals *  kg,
PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
BsdfEval bsdf_eval,
float3  shadow,
float  shadow_fac,
bool  is_lamp 
)

◆ path_radiance_accum_sample()

ccl_device_inline void path_radiance_accum_sample ( PathRadiance L,
PathRadiance L_sample 
)

◆ path_radiance_accum_total_ao()

ccl_device_inline void path_radiance_accum_total_ao ( PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
float3  bsdf 
)

Definition at line 385 of file kernel_accumulate.h.

References L, PATH_RAY_STORE_SHADOW_INFO, and state.

Referenced by kernel_path_ao().

◆ path_radiance_accum_total_light()

ccl_device_inline void path_radiance_accum_total_light ( PathRadiance L,
ccl_addr_space PathState state,
float3  throughput,
const BsdfEval bsdf_eval 
)

◆ path_radiance_accum_transparent()

ccl_device_inline void path_radiance_accum_transparent ( PathRadiance L,
ccl_addr_space PathState state,
float3  throughput 
)

Definition at line 520 of file kernel_accumulate.h.

References average(), and L.

◆ path_radiance_bsdf_bounce()

ccl_device_inline void path_radiance_bsdf_bounce ( KernelGlobals *  kg,
PathRadianceState L_state,
ccl_addr_space float3 throughput,
BsdfEval bsdf_eval,
float  bsdf_pdf,
int  bounce,
int  bsdf_label 
)

◆ path_radiance_clamp_and_sum()

ccl_device_inline float3 path_radiance_clamp_and_sum ( KernelGlobals *  kg,
PathRadiance L,
float alpha 
)

◆ path_radiance_copy_indirect()

ccl_device_inline void path_radiance_copy_indirect ( PathRadiance L,
const PathRadiance L_src 
)

◆ path_radiance_init()

ccl_device_inline void path_radiance_init ( KernelGlobals *  kg,
PathRadiance L 
)

Definition at line 170 of file kernel_accumulate.h.

References kernel_data, L, and zero_float3().

Referenced by kernel_buffer_update(), kernel_path_init(), and kernel_path_trace().

◆ path_radiance_reset_indirect()

ccl_device_inline void path_radiance_reset_indirect ( PathRadiance L)

Definition at line 560 of file kernel_accumulate.h.

References L, and zero_float3().

Referenced by kernel_do_volume(), kernel_next_iteration_setup(), and kernel_subsurface_scatter().

◆ path_radiance_split_denoising()

ccl_device_inline void path_radiance_split_denoising ( KernelGlobals *  kg,
PathRadiance L,
float3 noisy,
float3 clean 
)

◆ path_radiance_sum_indirect()

ccl_device_inline void path_radiance_sum_indirect ( PathRadiance L)

◆ shader_bsdf_transparency()

CCL_NAMESPACE_BEGIN ccl_device float3 shader_bsdf_transparency ( KernelGlobals *  kg,
const ShaderData sd 
)