Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Stockner <lukas.stockner@freenet.de>2016-08-21 06:38:48 +0300
committerLukas Stockner <lukas.stockner@freenet.de>2016-08-21 06:38:48 +0300
commitc5e9fabe19c8721e6c4541ee0f75bdd82accca13 (patch)
tree0b7e8bff0f3b1b210f37724d1c0a51f956cc0b30 /intern/cycles/kernel/kernel_passes.h
parent98dfe6f80035eae4de737ac883a48da304f67665 (diff)
parentc00b2d89911e20c8ace12a9256c689e9f43cc63b (diff)
Merge remote-tracking branch 'origin/master' into soc-2016-cycles_denoising
This was an extremely hacky merge with a lot of rebasing and git tricks involved, I hope it works as it's supposed to.
Diffstat (limited to 'intern/cycles/kernel/kernel_passes.h')
-rw-r--r--intern/cycles/kernel/kernel_passes.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h
index 39642a61cb0..8010165d217 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -187,10 +187,16 @@ ccl_device_inline bool kernel_write_denoising_passes(KernelGlobals *kg, ccl_glob
}
else {
ShaderClosure *max_sc = ccl_fetch_array(sd, closure, max_weight_closure);
- if(max_sc->roughness <= 0.075f) {
- /* This bounce is almost specular, so don't write the data yet. */
+ if(max_sc->type == CLOSURE_BSDF_TRANSPARENT_ID) {
return false;
}
+ if(CLOSURE_IS_BSDF_MICROFACET(max_sc->type)) {
+ /* Check for roughness, almost specular surfaces don't write data. */
+ MicrofacetBsdf *bsdf = (MicrofacetBsdf*) max_sc;
+ if(bsdf->alpha_x*bsdf->alpha_y <= 0.075f*0.075f) {
+ return false;
+ }
+ }
kernel_write_pass_float3_var(buffer, sample, ensure_finite3(normal/sum_weight));
kernel_write_pass_float3_var(buffer + 6, sample, ensure_finite3(albedo));
kernel_write_pass_float_var(buffer + 12, sample, ensure_finite(state->path_length));