21 const float matte_weight)
68 const float3 position = sd->P;
101 const float matte_weight =
average(throughput) *
103 if (matte_weight > 0.0f) {
108 cryptomatte_buffer,
kernel_data.film.cryptomatte_depth,
id, matte_weight);
113 cryptomatte_buffer,
kernel_data.film.cryptomatte_depth,
id, matte_weight);
118 cryptomatte_buffer,
kernel_data.film.cryptomatte_depth,
id, matte_weight);
140 const float mist_start =
kernel_data.film.mist_start;
141 const float mist_inv_depth =
kernel_data.film.mist_inv_depth;
144 float mist =
saturatef((depth - mist_start) * mist_inv_depth);
147 const float mist_falloff =
kernel_data.film.mist_falloff;
149 if (mist_falloff == 1.0f) {
152 else if (mist_falloff == 2.0f) {
155 else if (mist_falloff == 0.5f) {
159 mist =
powf(mist, mist_falloff);
165 const float mist_output = (1.0f - mist) *
average(throughput * alpha);
ccl_device_inline void film_write_cryptomatte_slots(ccl_global float *buffer, const int num_slots, const float id, const float weight)
ccl_device_inline void film_write_data_passes_background(KernelGlobals kg, IntegratorState state, ccl_global float *ccl_restrict render_buffer)
ccl_device_inline void film_write_data_passes(KernelGlobals kg, IntegratorState state, const ccl_private ShaderData *sd, ccl_global float *ccl_restrict render_buffer)
CCL_NAMESPACE_BEGIN ccl_device_inline size_t film_write_cryptomatte_pass(ccl_global float *ccl_restrict buffer, const size_t depth, const float id, const float matte_weight)
#define kernel_data_fetch(name, index)
const ThreadKernelGlobalsCPU * KernelGlobals
#define ccl_device_inline
#define CCL_NAMESPACE_END
ccl_device_inline float camera_z_depth(KernelGlobals kg, const float3 P)
ccl_device_inline float camera_distance(KernelGlobals kg, const float3 P)
ccl_gpu_kernel_postfix ccl_global KernelWorkTile const int ccl_global float * render_buffer
ccl_device int shader_pass_id(KernelGlobals kg, const ccl_private ShaderData *sd)
ccl_device_inline float object_cryptomatte_id(KernelGlobals kg, const int object)
ccl_device_inline float object_cryptomatte_asset_id(KernelGlobals kg, const int object)
ccl_device_inline float object_pass_id(KernelGlobals kg, const int object)
@ PATH_RAY_SHADOW_CATCHER_PASS
@ PATH_RAY_SINGLE_PASS_DONE
@ PATH_RAY_TRANSPARENT_BACKGROUND
CCL_NAMESPACE_BEGIN ccl_device_inline float3 zero_float3()
ccl_device_forceinline float3 primitive_uv(KernelGlobals kg, const ccl_private ShaderData *sd)
ccl_device_forceinline float4 primitive_motion_vector(KernelGlobals kg, const ccl_private ShaderData *sd)
#define INTEGRATOR_STATE_WRITE(state, nested_struct, member)
#define INTEGRATOR_STATE(state, nested_struct, member)
IntegratorStateCPU * IntegratorState
ccl_device float surface_shader_average_roughness(const ccl_private ShaderData *sd)
ccl_device Spectrum surface_shader_transmission(KernelGlobals kg, const ccl_private ShaderData *sd)
ccl_device float3 surface_shader_average_normal(const ccl_private ShaderData *sd)
ccl_device Spectrum surface_shader_transparency(const ccl_private ShaderData *sd)
ccl_device Spectrum surface_shader_glossy(KernelGlobals kg, const ccl_private ShaderData *sd)
ccl_device Spectrum surface_shader_alpha(const ccl_private ShaderData *sd)
ccl_device Spectrum surface_shader_diffuse(KernelGlobals kg, const ccl_private ShaderData *sd)
ccl_device_inline void film_write_pass_float4(ccl_global float *ccl_restrict buffer, const float4 value)
ccl_device_inline void film_overwrite_pass_float3(ccl_global float *ccl_restrict buffer, const float3 value)
ccl_device_inline void film_write_pass_float3(ccl_global float *ccl_restrict buffer, const float3 value)
ccl_device_inline void film_write_pass_spectrum(ccl_global float *ccl_restrict buffer, Spectrum value)
ccl_device_inline void film_write_pass_float(ccl_global float *ccl_restrict buffer, const float value)
CCL_NAMESPACE_BEGIN ccl_device_forceinline ccl_global float * film_pass_pixel_render_buffer(KernelGlobals kg, ConstIntegratorState state, ccl_global float *ccl_restrict render_buffer)
ccl_device_inline void film_overwrite_pass_float(ccl_global float *ccl_restrict buffer, const float value)