-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Meandering Motion Blur with Instancing #206
Comments
My current theory is this is due to the way the inverse transforms are applied after the interpolation. pbrt-v4/src/pbrt/util/transform.h Lines 458 to 463 in 47201aa
As an example of how the curved path can occur - Right side locators are the inverse of the left side. In this example, as before the right side locators are the inverse of the left side, however the moving locator on the right is calculated by first taking the inverse of each transform, then interpolating that result. |
I think I narrowed this down further and at least fixed the "artifacts" that I was perceiving. The above theory was in the ballpark but not exactly right. The issue relates to the space in which the interpolation happens, Lines 370 to 376 in 47201aa
The interpolation has the Master (47201aa)AnimatedTransform::Interpolate() fixExample Scene
I didn't submit a PR for this because I kinda made a mess of the API by stashing the |
Potential fix for mmp#206
This can also be addressed on the scene creation side as well. For example using the current master - 315b28b we get - But if we apply the inverse of the camera's transform in the ObjectBegin description, then reapply it prior to calling ObjectInstance we get -
|
Fix imprecise frame pacing during playback
Fun one!
When motion blurring instances the objects seem to be going on a bit of a trip. In the image below, the red object is an instanced sphere, the blue has the same ActiveTransforms applied but is not an instance.
Both spheres should be following the same path but the instanced sphere is being adventurous.
Example Scene
The text was updated successfully, but these errors were encountered: