60#ifdef __PATH_GUIDING__
87#ifdef __DENOISING_FEATURES__
94#ifdef __LIGHT_LINKING__
104 const int shader_flag)
114 if (transparent_bounce >=
kernel_data.integrator.transparent_max_bounce) {
140 flag &= ~PATH_RAY_TRANSPARENT_BACKGROUND;
147 if (volume_bounce >=
kernel_data.integrator.max_volume_bounce) {
157 flag &= ~PATH_RAY_TRANSPARENT_BACKGROUND;
162 if (diffuse_bounce >=
kernel_data.integrator.max_diffuse_bounce) {
169 if (glossy_bounce >=
kernel_data.integrator.max_glossy_bounce) {
180 flag &= ~PATH_RAY_TRANSPARENT_BACKGROUND;
185 if (transmission_bounce >=
kernel_data.integrator.max_transmission_bounce) {
266 if (transparent_bounce <=
kernel_data.integrator.transparent_min_bounce) {
281#if defined(__PATH_GUIDING__) && PATH_GUIDING_LEVEL >= 4
296 return (bounce >
kernel_data.integrator.ao_bounces);
344 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
352 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
360 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
366 const int num_branches,
370 rng_state->rng_pixel,
371 rng_state->sample * num_branches + branch,
372 rng_state->rng_offset + dimension);
378 const int num_branches,
382 rng_state->rng_pixel,
383 rng_state->sample * num_branches + branch,
384 rng_state->rng_offset + dimension);
390 const int num_branches,
394 rng_state->rng_pixel,
395 rng_state->sample * num_branches + branch,
396 rng_state->rng_offset + dimension);
405 if (
kernel_data.integrator.light_inv_rr_threshold > 0.0f) {
static unsigned long seed
#define kernel_assert(cond)
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define ccl_device_inline
#define CCL_NAMESPACE_END
ccl_device_inline uint hash_hp_seeded_uint(uint i, uint seed)
ccl_global const KernelWorkTile * tile
#define KERNEL_FEATURE_VOLUME
@ SD_BSDF_HAS_TRANSMISSION
#define VOLUME_BOUNDS_MAX
@ PATH_RAY_TERMINATE_AFTER_TRANSPARENT
@ PATH_RAY_MIS_HAD_TRANSMISSION
@ PATH_RAY_VOLUME_SCATTER
@ PATH_RAY_DENOISING_FEATURES
@ PATH_RAY_ALL_VISIBILITY
@ PATH_RAY_TRANSPARENT_BACKGROUND
@ PATH_RAY_TERMINATE_ON_NEXT_SURFACE
@ PATH_RAY_DIFFUSE_ANCESTOR
@ LABEL_TRANSMIT_TRANSPARENT
#define KERNEL_FEATURE_DENOISING
#define KERNEL_FEATURE_LIGHT_LINKING
#define SHADOW_CATCHER_PATH_VISIBILITY(path_flag, visibility)
ccl_device_inline float reduce_max(const float2 a)
ccl_device_inline float2 fabs(const float2 a)
ccl_device_inline void path_state_init(IntegratorState state, ccl_global const KernelWorkTile *ccl_restrict tile, const int x, const int y)
ccl_device_inline float path_state_continuation_probability(KernelGlobals kg, ConstIntegratorState state, const uint32_t path_flag)
ccl_device_inline bool path_state_ao_bounce(KernelGlobals kg, ConstIntegratorState state)
ccl_device_inline float3 path_state_rng_3D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int dimension)
ccl_device_inline void shadow_path_state_rng_load(ConstIntegratorShadowState state, ccl_private RNGState *rng_state)
ccl_device_inline float path_state_rng_1D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int dimension)
ccl_device_inline float path_state_rng_light_termination(KernelGlobals kg, ccl_private const RNGState *state)
ccl_device_inline float2 path_state_rng_2D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int dimension)
ccl_device_inline void path_state_rng_load(ConstIntegratorState state, ccl_private RNGState *rng_state)
ccl_device_inline uint path_state_ray_visibility(ConstIntegratorState state)
ccl_device_inline void path_state_next(KernelGlobals kg, IntegratorState state, const int label, const int shader_flag)
ccl_device_inline float2 path_branched_rng_2D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int branch, const int num_branches, const int dimension)
ccl_device_inline void path_state_init_integrator(KernelGlobals kg, IntegratorState state, const int sample, const uint rng_pixel)
ccl_device_inline float3 path_branched_rng_3D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int branch, const int num_branches, const int dimension)
ccl_device_inline float path_branched_rng_1D(KernelGlobals kg, ccl_private const RNGState *rng_state, const int branch, const int num_branches, const int dimension)
CCL_NAMESPACE_BEGIN ccl_device_inline void path_state_init_queues(IntegratorState state)
ccl_device_inline void path_state_rng_scramble(ccl_private RNGState *rng_state, const int seed)
ccl_device_forceinline float2 path_rng_2D(KernelGlobals kg, uint rng_pixel, int sample, int dimension)
ccl_device_forceinline float path_rng_1D(KernelGlobals kg, uint rng_pixel, uint sample, int dimension)
ccl_device_forceinline float3 path_rng_3D(KernelGlobals kg, uint rng_pixel, int sample, int dimension)
const IntegratorShadowStateCPU *ccl_restrict ConstIntegratorShadowState
#define INTEGRATOR_STATE_ARRAY_WRITE(state, nested_struct, array_index, member)
IntegratorStateCPU *ccl_restrict IntegratorState
#define INTEGRATOR_STATE_WRITE(state, nested_struct, member)
const IntegratorStateCPU *ccl_restrict ConstIntegratorState
#define INTEGRATOR_STATE(state, nested_struct, member)
SPECTRUM_DATA_TYPE Spectrum