Blender Git Commit Log

Git Commits -> Revision a8fe3a1

Revision a8fe3a1 by Lukas Stockner (master)
February 18, 2016, 00:23 (GMT)
Fix T47461: Different results on CPU and GPU when using Branched Path Tracing

The issue here was actually somewhere else - the attached scene from the report used a light falloff node in a sunlamp (aka distant light).
However, since distant lamps set the ray length to FLT_MAX and the light falloff node squares this value, it overflows and produces a NaN
weight, which propagates and leads to a NaN intensity, which is then clamped to zero and produces the black pixels.

To fix that issue, the smoothing part of the light falloff is just ignored if the smoothing term isn't finite (which makes sense since
the term should converge to 1 as the distance increases).
The reason for the different results on CPUs and GPUs is not perfectly clear, but probably can be explained with different handling of
Inf/NaN edge cases.

Also, to notice issues like these faster in the future, kernel_asserts were added that evaluate as false as soon as a non-finite intensity is produced.

Commit Details:

Full Hash: a8fe3a1ceef31ca39a455fee25bc1e361e1048ff
Parent Commit: d40a24a
Lines Changed: +8, -2

2 Modified Paths:

/intern/cycles/kernel/kernel_accumulate.h (+4, -1) (Diff)
/intern/cycles/kernel/svm/svm_light_path.h (+4, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021