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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-02-07 21:32:01 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-02-07 21:32:01 +0400
commit4a427a441b37ad0539e3c758b31a384edf8b7c76 (patch)
treeb8b4a69ec083d547068f2a30b76e13100f813e90 /intern/cycles/kernel/kernel_shader.h
parentb67b1c8564cedfc425892f6b071210b724366523 (diff)
Fix #30049: cycles noise texture producing nan values with some
texture coordinates, due to int overflow. Also minor tweak in shader code to avoid copying uninitialized values, should have no effect though because they were not used.
Diffstat (limited to 'intern/cycles/kernel/kernel_shader.h')
-rw-r--r--intern/cycles/kernel/kernel_shader.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index 7e0b0ff4d0f..46ef5d2022a 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -368,12 +368,13 @@ __device int shader_bsdf_sample(KernelGlobals *kg, const ShaderData *sd,
#else
label = svm_bsdf_sample(sd, sc, randu, randv, &eval, omega_in, domega_in, pdf);
#endif
+ if(*pdf != 0.0f) {
+ bsdf_eval_init(bsdf_eval, sc->type, eval*sc->weight, kernel_data.film.use_light_pass);
- bsdf_eval_init(bsdf_eval, sc->type, eval*sc->weight, kernel_data.film.use_light_pass);
-
- if(sd->num_closure > 1 && *pdf != 0.0f) {
- float sweight = sc->sample_weight;
- _shader_bsdf_multi_eval(sd, *omega_in, pdf, sampled, bsdf_eval, *pdf*sweight, sweight);
+ if(sd->num_closure > 1) {
+ float sweight = sc->sample_weight;
+ _shader_bsdf_multi_eval(sd, *omega_in, pdf, sampled, bsdf_eval, *pdf*sweight, sweight);
+ }
}
return label;