Cleanup: minor refactoring in preparation of main and shadow path decoupling
Ref D12889
This commit is contained in:
parent
2430f75279
commit
a9cb330815
|
@ -56,7 +56,7 @@ ccl_device_forceinline bool integrate_surface_holdout(KernelGlobals kg,
|
|||
if (kernel_data.background.transparent) {
|
||||
const float3 throughput = INTEGRATOR_STATE(state, path, throughput);
|
||||
const float transparent = average(holdout_weight * throughput);
|
||||
kernel_accum_transparent(kg, state, path_flag, transparent, render_buffer);
|
||||
kernel_accum_holdout(kg, state, path_flag, transparent, render_buffer);
|
||||
}
|
||||
if (isequal_float3(holdout_weight, one_float3())) {
|
||||
return false;
|
||||
|
@ -385,6 +385,14 @@ ccl_device bool integrate_surface(KernelGlobals kg,
|
|||
/* Evaluate shader. */
|
||||
PROFILING_EVENT(PROFILING_SHADE_SURFACE_EVAL);
|
||||
shader_eval_surface<node_feature_mask>(kg, state, &sd, render_buffer, path_flag);
|
||||
|
||||
/* Initialize additional RNG for BSDFs. */
|
||||
if (sd.flag & SD_BSDF_NEEDS_LCG) {
|
||||
sd.lcg_state = lcg_state_init(INTEGRATOR_STATE(state, path, rng_hash),
|
||||
INTEGRATOR_STATE(state, path, rng_offset),
|
||||
INTEGRATOR_STATE(state, path, sample),
|
||||
0xb4bc3953);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __SUBSURFACE__
|
||||
|
|
|
@ -473,10 +473,8 @@ ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
|
|||
ConstIntegratorState state,
|
||||
const uint32_t path_flag,
|
||||
const float transparent,
|
||||
ccl_global float *ccl_restrict render_buffer)
|
||||
ccl_global float *ccl_restrict buffer)
|
||||
{
|
||||
ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
|
||||
|
||||
if (kernel_data.film.light_pass_flag & PASSMASK(COMBINED)) {
|
||||
kernel_write_pass_float(buffer + kernel_data.film.pass_combined + 3, transparent);
|
||||
}
|
||||
|
@ -484,6 +482,17 @@ ccl_device_inline void kernel_accum_transparent(KernelGlobals kg,
|
|||
kernel_accum_shadow_catcher_transparent_only(kg, path_flag, transparent, buffer);
|
||||
}
|
||||
|
||||
/* Write holdout to render buffer. */
|
||||
ccl_device_inline void kernel_accum_holdout(KernelGlobals kg,
|
||||
ConstIntegratorState state,
|
||||
const uint32_t path_flag,
|
||||
const float transparent,
|
||||
ccl_global float *ccl_restrict render_buffer)
|
||||
{
|
||||
ccl_global float *buffer = kernel_accum_pixel_render_buffer(kg, state, render_buffer);
|
||||
kernel_accum_transparent(kg, state, path_flag, transparent, buffer);
|
||||
}
|
||||
|
||||
/* Write background contribution to render buffer.
|
||||
*
|
||||
* Includes transparency, matching kernel_accum_transparent. */
|
||||
|
@ -501,7 +510,7 @@ ccl_device_inline void kernel_accum_background(KernelGlobals kg,
|
|||
const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
|
||||
|
||||
if (is_transparent_background_ray) {
|
||||
kernel_accum_transparent(kg, state, path_flag, transparent, render_buffer);
|
||||
kernel_accum_transparent(kg, state, path_flag, transparent, buffer);
|
||||
}
|
||||
else {
|
||||
const int sample = INTEGRATOR_STATE(state, path, sample);
|
||||
|
|
|
@ -76,7 +76,8 @@ ccl_device void kernel_background_evaluate(KernelGlobals kg,
|
|||
/* Evaluate shader.
|
||||
* This is being evaluated for all BSDFs, so path flag does not contain a specific type. */
|
||||
const uint32_t path_flag = PATH_RAY_EMISSION;
|
||||
shader_eval_surface<KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT>(
|
||||
shader_eval_surface<KERNEL_FEATURE_NODE_MASK_SURFACE_LIGHT &
|
||||
~(KERNEL_FEATURE_NODE_RAYTRACE | KERNEL_FEATURE_NODE_LIGHT_PATH)>(
|
||||
kg, INTEGRATOR_STATE_NULL, &sd, NULL, path_flag);
|
||||
float3 color = shader_background_eval(&sd);
|
||||
|
||||
|
|
|
@ -625,16 +625,6 @@ ccl_device void shader_eval_surface(KernelGlobals kg,
|
|||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
IF_KERNEL_NODES_FEATURE(BSDF)
|
||||
{
|
||||
if (sd->flag & SD_BSDF_NEEDS_LCG) {
|
||||
sd->lcg_state = lcg_state_init(INTEGRATOR_STATE(state, path, rng_hash),
|
||||
INTEGRATOR_STATE(state, path, rng_offset),
|
||||
INTEGRATOR_STATE(state, path, sample),
|
||||
0xb4bc3953);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Volume */
|
||||
|
|
Loading…
Reference in New Issue