Having not found any information about path tracing motion blur on the web I'm just guessing here, but the behavior of the engines are pointing towards geometry based algorithms.
Firstly, neither Falcon nor Cycles can get it right on the first frame,
and secondly, and that's more important, there is not much cost in additional render time. All temporal approaches that I have heard about are slowing things down a lot. Your suggestion of building scene graphs per time interval doesn't sound like something that works as easy and fast like Falcon's motion blur.
...we’re following photons not geometry...
How could this be a contradiction ?
Every path of a photon is a geometric construct of course, then happens a bounce and we get a stochastic calculation which determines a new angle, the next leg of calculated geometry.
“Time" gets sampled as a bunch of paths, that is in the end an averaging of a distribution of geometric alternatives (which have resulted in rgb values).
I don't understand how you think you could evade geometry in path tracing algorithms, thats impossible to me.
The stochastic choices being made of course may simulate temporal distributions, but these are always geometric distributions as well, because photons travel different paths at different times.
In my opinion the thing works similar to DOF or reflection blurring.
In an unblurred image, there are defined points of intersection.
With blurring, these points get replaced by defined areas which require a different sampling but not more rays, basically the new ray angle is calculated regarding a different space of possibilities.
With motion blur the static intersection points don't turn into defined areas but defined lines (not even vectors because the direction doesn't count). Instead of changing from 0-dimensional (defined point) to 2-dimensional (defined area) that's a step into 1-dimensional (defined line) math to calculate the sample space.
It adds a little of calculation time, but similar to the other blurring algorithms, and that's what I see during rendering.
Maybe Martin can drop a hint how he did it :smile: