Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix builtin kd-tree min/max-binning precision problems
Mitsuba usually defers ray tracing to OptiX/Embree. It can, however, also be built in a special mode that uses an internal kd-tree. This is useful for things like double precision ray tracing, which is unfortunately not possible in OptiX/Embree. There was a long-standing bug in the builtin-kdtree implementation that somehow got added in the port of this code from Mitsuba 0.5. When the scene contains perfectly axis-aligned primitives, the min-max binning builder could sometimes produce highly unbalanced trees. This turned out to be due to an incorrect stopping criterion, and because of inconsistencies caused by flush-to-zero (FTZ). Both issues are fixed as of this commit, and nice trees are produced for two problematic test workloads that were separately provided by different users.
- Loading branch information