Hi colleagues,
What's the way to get several steps of motion blur transformation matrices for BaseObjects of the BaseDocument within the single frame that is on the render process of VideoPostData?
I usually do
- ClonedDoc = BaseDoc->GetClone(COPYFLAGS_0, NULL);
- Then do execute of passes and collection of matrix positions
for(time steps) {
ClonedDoc->SetTime();
ClonedDoc->ExecutePasses()
} - Then use matrix positions to calculate motion blur
The observations tell that GetClone and ExecutePasses are expensive calls.
Is there any way to get subframe transformation matrices?
I have seen some get motion data, but it seems to be for Physical render.
Thanks,
Aaron
I think there is a bug in the following situation:
- There is a recent featured with object Liquid Mesh in the document of VideoPostData pipeline
- When we just collect the scene elements the polygon object cache (POC) returned by Liquid Mesh->GetCache() contains the polygons to build this nice liquid object mesh
- When we want to add Motion Blur and call document->ExecutePasses(...) for some time then this POC is flushed and has no polygons or vertices, so it's not collected and can't be rendered
- Even if we don't call ExecutePasses() but add Sub-Frame Motion Blur effect in Cinema Settings then POC is also flushed the same way as in #3.
Bake to Alembic for Liquid Mesh helps but still...