diff options
author | Lukas Stockner <lukasstockner97> | 2019-12-04 21:57:28 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-12-10 22:44:46 +0300 |
commit | e760972221e68d3c81f2ee3687cc71836dde8ae9 (patch) | |
tree | b1a2efbb17c05a429e4509d336a1eb14c73cfb8c /intern/cycles/kernel/kernel_bake.h | |
parent | 35b5888b157d05d378df3acc899d28856a9eb9a4 (diff) |
Cycles: support for custom shader AOVs
Custom render passes are added in the Shader AOVs panel in the view layer
settings, with a name and data type. In shader nodes, an AOV Output node
is then used to output either a value or color to the pass.
Arbitrary names can be used for these passes, as long as they don't conflict
with built-in passes that are enabled. The AOV Output node can be used in both
material and world shader nodes.
Implemented by Lukas, with tweaks by Brecht.
Differential Revision: https://developer.blender.org/D4837
Diffstat (limited to 'intern/cycles/kernel/kernel_bake.h')
-rw-r--r-- | intern/cycles/kernel/kernel_bake.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/intern/cycles/kernel/kernel_bake.h b/intern/cycles/kernel/kernel_bake.h index cd1ca5ea7ec..8e5a279e6cd 100644 --- a/intern/cycles/kernel/kernel_bake.h +++ b/intern/cycles/kernel/kernel_bake.h @@ -45,7 +45,7 @@ ccl_device_inline void compute_light_pass( path_state_init(kg, &emission_sd, &state, rng_hash, sample, NULL); /* evaluate surface shader */ - shader_eval_surface(kg, sd, &state, state.flag); + shader_eval_surface(kg, sd, &state, NULL, state.flag); /* TODO, disable more closures we don't need besides transparent */ shader_bsdf_disable_transparency(kg, sd); @@ -209,12 +209,12 @@ ccl_device float3 kernel_bake_evaluate_direct_indirect(KernelGlobals *kg, } else { /* surface color of the pass only */ - shader_eval_surface(kg, sd, state, 0); + shader_eval_surface(kg, sd, state, NULL, 0); return kernel_bake_shader_bsdf(kg, sd, type); } } else { - shader_eval_surface(kg, sd, state, 0); + shader_eval_surface(kg, sd, state, NULL, 0); color = kernel_bake_shader_bsdf(kg, sd, type); } @@ -332,7 +332,7 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, case SHADER_EVAL_EMISSION: { if (type != SHADER_EVAL_NORMAL || (sd.flag & SD_HAS_BUMP)) { int path_flag = (type == SHADER_EVAL_EMISSION) ? PATH_RAY_EMISSION : 0; - shader_eval_surface(kg, &sd, &state, path_flag); + shader_eval_surface(kg, &sd, &state, NULL, path_flag); } if (type == SHADER_EVAL_NORMAL) { @@ -445,7 +445,7 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, /* evaluate */ int path_flag = 0; /* we can't know which type of BSDF this is for */ - shader_eval_surface(kg, &sd, &state, path_flag | PATH_RAY_EMISSION); + shader_eval_surface(kg, &sd, &state, NULL, path_flag | PATH_RAY_EMISSION); out = shader_background_eval(&sd); break; } @@ -524,7 +524,7 @@ ccl_device void kernel_background_evaluate(KernelGlobals *kg, /* evaluate */ int path_flag = 0; /* we can't know which type of BSDF this is for */ - shader_eval_surface(kg, &sd, &state, path_flag | PATH_RAY_EMISSION); + shader_eval_surface(kg, &sd, &state, NULL, path_flag | PATH_RAY_EMISSION); float3 color = shader_background_eval(&sd); /* write output */ |