66#if defined(__PATH_GUIDING__)
96#ifdef __DENOISING_FEATURES__
103#ifdef __LIGHT_LINKING__
113 const int shader_flag)
123 if (transparent_bounce >=
kernel_data.integrator.transparent_max_bounce) {
160 if (volume_bounce >=
kernel_data.integrator.max_volume_bounce) {
179 if (diffuse_bounce >=
kernel_data.integrator.max_diffuse_bounce) {
186 if (glossy_bounce >=
kernel_data.integrator.max_glossy_bounce) {
202 if (transmission_bounce >=
kernel_data.integrator.max_transmission_bounce) {
273 const uint32_t path_flag)
278 if (transparent_bounce <=
kernel_data.integrator.transparent_min_bounce) {
293#if defined(__PATH_GUIDING__) && PATH_GUIDING_LEVEL >= 4
310 return (bounce >
kernel_data.integrator.ao_bounces);
358 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
366 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
374 kg, rng_state->rng_pixel, rng_state->sample, rng_state->rng_offset + dimension);
380 const int num_branches,
384 rng_state->rng_pixel,
385 rng_state->sample * num_branches + branch,
386 rng_state->rng_offset + dimension);
392 const int num_branches,
396 rng_state->rng_pixel,
397 rng_state->sample * num_branches + branch,
398 rng_state->rng_offset + dimension);
404 const int num_branches,
408 rng_state->rng_pixel,
409 rng_state->sample * num_branches + branch,
410 rng_state->rng_offset + dimension);
419 if (
kernel_data.integrator.light_inv_rr_threshold > 0.0f) {
static unsigned long seed
reduce_max(value.rgb)") DEFINE_VALUE("REDUCE(lhs
#define kernel_assert(cond)
#define KERNEL_FEATURE_VOLUME
#define KERNEL_FEATURE_NODE_PORTAL
#define VOLUME_BOUNDS_MAX
#define KERNEL_FEATURE_PATH_GUIDING
const ThreadKernelGlobalsCPU * KernelGlobals
#define ccl_device_inline
#define KERNEL_FEATURE_DENOISING
#define KERNEL_FEATURE_LIGHT_LINKING
#define SHADOW_CATCHER_PATH_VISIBILITY(path_flag, visibility)
#define CCL_NAMESPACE_END
ccl_device_inline uint hash_hp_seeded_uint(const uint i, uint seed)
const ccl_global KernelWorkTile * tile
@ SD_BSDF_HAS_TRANSMISSION
@ 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_VOLUME_PRIMARY_TRANSMIT
@ PATH_RAY_DIFFUSE_ANCESTOR
@ LABEL_TRANSMIT_TRANSPARENT
ccl_device_inline float2 fabs(const float2 a)
ccl_device_inline void path_state_init_integrator(KernelGlobals kg, IntegratorState state, const int sample, const uint rng_pixel, const Spectrum throughput)
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 float path_state_rng_1D(KernelGlobals kg, const ccl_private 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_branched_rng_1D(KernelGlobals kg, const ccl_private RNGState *rng_state, const int branch, const int num_branches, const int dimension)
ccl_device_inline float path_state_rng_light_termination(KernelGlobals kg, const ccl_private RNGState *state)
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 float2 path_branched_rng_2D(KernelGlobals kg, const ccl_private RNGState *rng_state, const int branch, const int num_branches, const int dimension)
ccl_device_inline void path_state_next(KernelGlobals kg, IntegratorState state, const int label, const int shader_flag)
ccl_device_inline float3 path_branched_rng_3D(KernelGlobals kg, const ccl_private 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_inline void path_state_init(IntegratorState state, const ccl_global KernelWorkTile *ccl_restrict tile, const int x, const int y)
ccl_device_inline float2 path_state_rng_2D(KernelGlobals kg, const ccl_private RNGState *rng_state, const int dimension)
ccl_device_inline float3 path_state_rng_3D(KernelGlobals kg, const ccl_private RNGState *rng_state, const int dimension)
ccl_device_forceinline float2 path_rng_2D(KernelGlobals kg, const uint rng_pixel, const int sample, const int dimension)
ccl_device_forceinline float3 path_rng_3D(KernelGlobals kg, const uint rng_pixel, const int sample, const int dimension)
ccl_device_forceinline float path_rng_1D(KernelGlobals kg, const uint rng_pixel, const uint sample, const int dimension)
#define INTEGRATOR_STATE_ARRAY_WRITE(state, nested_struct, array_index, member)
#define INTEGRATOR_STATE_WRITE(state, nested_struct, member)
#define INTEGRATOR_STATE(state, nested_struct, member)
const IntegratorShadowStateCPU * ConstIntegratorShadowState
IntegratorStateCPU * IntegratorState
const IntegratorStateCPU * ConstIntegratorState