Blender Cycles Turbocharged: how we made rendering 10x faster(cloud.blender.org) |
Blender Cycles Turbocharged: how we made rendering 10x faster(cloud.blender.org) |
In theory, upping the resolution will also remove the need for spatial anti-aliasing, though it's not efficient. Distributing rays in time feels a bit different because what you're really trying to do is integrate over an interval of time. So I'm not sure I agree that they are the same thing.
Typically, anti-aliasing uses an average of multiple samples across the width of the pixel (MSAA), or across the timespan of the frame to eliminate this.
That is in fact a rectangular function in the time/spatial domain. Which is wrong. A rectangular function reduces rather than eliminates the frequency components above the nyquist rate, and also attenuates frequencies near but below the nyquist rate (leading to blur).
In fact, you want a rectangular frequency domain function, which in the spatial/time domain is a sinc function.
This isn't done in real cameras because it is technically too hard, but in 3D rendering, it should be done, and will produce smoother animations.
I have never seen anyone do this, but results should be theoretically better. I’d also like to see a freeze frame of a sinc time domain sampled motion blur - it would probably look very weird, even though it looks good at the playback rate.
Ok, I'm not a rendering person, but didn't Ravi Ramamoorthi have a series of papers that solved motion blur?
Sounds more that they optimized their BVH implementation
> 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).
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)?