We've been testing arnold (mtoa) with our USD assets and have encountered the following error when enabling motion blur:
ERROR | [polymesh] /path/to/primitive: different number of motion keys in vertex/normal arrays: #normal keys: 1, #vertex keys: 3
We're using the normal maya render workflow with motion blur enabled and motion keys set to 2.
Can anyone elaborate on this error?
Thanks
Solved! Go to Solution.
Solved by Stephen.Blair. Go to Solution.
The vertices and normals should have the same number of motion keys. Normally, that would be two motion keys.
What's the set up here? A usd procedural loading some usd files into a Maya scene?
Where did the USD files come from?
If you save the usd files as usda, can you check the timesamples for the normals and points? Are there two or three time samples?
In this example, the normals have two time samples (-0.25 and 0.25):
vector3f[] primvars:normals.timeSamples = { -0.25: [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), 0.25: [(0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), }
I'm using mayaUsd plugin 0.14 in Maya 2022.2 to create mayaUsdProxyShapes that are then rendered with Arnold. The USD files are generated by our pipeline.
We store animation caches as USD overrides for the point and extent attributes of each mesh with a time sample per frame. These are then sublayered over the static asset USD. As such the normals don't have time samples. I would expect them to as they don't change over time?
Regards
David
You're using Maya USD to create the animation caches? Or something else? Can it put time samples on the normals?
You were right - I needed to store time samples for the normals as well as the points. This is being done in a Houdini PDG graph.
Oddly enough I kept getting out-of-range errors when using indexed normals so had to drop the indexing to get Arnold to stop complaining.
Regards
David
Can you explain how did you do this?
Thanks in advance