Blender  V3.3
aov.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #pragma once
5 
7 
9 
12 {
13  bool is_primary = (path_flag & PATH_RAY_TRANSPARENT_BACKGROUND) &&
14  (!(path_flag & PATH_RAY_SINGLE_PASS_DONE));
15 
16  return ((render_buffer != NULL) && is_primary);
17 }
18 
19 template<uint node_feature_mask, typename ConstIntegratorGenericState>
21  ConstIntegratorGenericState state,
23  ccl_private float *stack,
24  uint4 node,
26 {
28  {
29  const float3 val = stack_load_float3(stack, node.y);
31  const uint64_t render_buffer_offset = (uint64_t)render_pixel_index *
32  kernel_data.film.pass_stride;
33  ccl_global float *buffer = render_buffer + render_buffer_offset +
34  (kernel_data.film.pass_aov_color + node.z);
35  kernel_write_pass_float4(buffer, make_float4(val.x, val.y, val.z, 1.0f));
36  }
37 }
38 
39 template<uint node_feature_mask, typename ConstIntegratorGenericState>
41  ConstIntegratorGenericState state,
43  ccl_private float *stack,
44  uint4 node,
46 {
48  {
49  const float val = stack_load_float(stack, node.y);
51  const uint64_t render_buffer_offset = (uint64_t)render_pixel_index *
52  kernel_data.film.pass_stride;
53  ccl_global float *buffer = render_buffer + render_buffer_offset +
54  (kernel_data.film.pass_aov_value + node.z);
56  }
57 }
ccl_device void svm_node_aov_color(KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node, ccl_global float *render_buffer)
Definition: aov.h:20
CCL_NAMESPACE_BEGIN ccl_device_inline bool svm_node_aov_check(const uint32_t path_flag, ccl_global float *render_buffer)
Definition: aov.h:10
ccl_device void svm_node_aov_value(KernelGlobals kg, ConstIntegratorGenericState state, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node, ccl_global float *render_buffer)
Definition: aov.h:40
#define ccl_device
Definition: cuda/compat.h:32
#define ccl_private
Definition: cuda/compat.h:48
#define ccl_device_inline
Definition: cuda/compat.h:34
#define ccl_global
Definition: cuda/compat.h:43
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
OperationNode * node
#define kernel_data
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_global float * buffer
ccl_gpu_kernel_postfix ccl_global KernelWorkTile const int ccl_global float * render_buffer
const uint64_t render_pixel_index
const int state
CCL_NAMESPACE_BEGIN ccl_device_inline float3 stack_load_float3(ccl_private float *stack, uint a)
ccl_device_inline float stack_load_float(ccl_private float *stack, uint a)
#define IF_KERNEL_NODES_FEATURE(feature)
@ PATH_RAY_SINGLE_PASS_DONE
Definition: kernel/types.h:232
@ PATH_RAY_TRANSPARENT_BACKGROUND
Definition: kernel/types.h:235
ShaderData
Definition: kernel/types.h:925
#define make_float4(x, y, z, w)
Definition: metal/compat.h:205
#define INTEGRATOR_STATE(state, nested_struct, member)
Definition: state.h:154
unsigned int uint32_t
Definition: stdint.h:80
unsigned __int64 uint64_t
Definition: stdint.h:90
float z
float y
float x
CCL_NAMESPACE_BEGIN ccl_device_inline void kernel_write_pass_float(ccl_global float *ccl_restrict buffer, float value)
Definition: write_passes.h:12
ccl_device_inline void kernel_write_pass_float4(ccl_global float *ccl_restrict buffer, float4 value)
Definition: write_passes.h:39