Hacker News new | ask | show | jobs
by boulos 3386 days ago
They don't say how, but I assume like all of us they moved to a motion-blur friendly time-based BVH. I'm surprised this only recently came up for Blender!
2 comments

> After a few days of investigation, Sergey improved the layout of hair bounding boxes for BVH structure. What does this mean? A more in-depth explanation is coming soon.

Sounds more that they optimized their BVH implementation

Sorry if I wasn't clear. Using a time-dependent BVH (where instead of two vec3 for the corners you store four, one pair for t=0 and one for t=1) is an "optimization". Given the later sentence:

> After that, he applied the same optimization to triangles (for actual character geometry)

it suggested that the bug was just using a single bounding box that ignored the motion (which is correct, but slow).

Looking at the diff they did it doesn't really look that way (only had a quick glance though).

Looks like they're not using a swept BVH (interpolated time segments) for motion blur which seems weird, instead leaf nodes seem to be duplicated for each time sample.

So it looks like they're just making savings by skipping motion segments outside the current ray time, and I'd assume the bboxes of the parent inner nodes are all much bigger than they need to be (as they're not swept), and so intersection performance is still quite bad (compared with how it could be)?