maya xmesh load speeds

Currently to load a cache that totals 1g in size in maya (over 300 frames) takes about 10 minutes, only utilizing around 0-8% of a 1gig network connection, fluctuating heavily.

When copying the files over to my local drive, it takes about 20 seconds to copy all the files (single threaded) and i get 50-60% bandwidth utilization.

(loading the same sequence in max takes about 170 seconds, and network usage is between 0-10%, which is still much better than in maya, even if less than ideal)

Would it be possible to improve the xmesh load performance in maya?

Things that come to mind:

  • preloading the whole file for the given sample and treat it as ram bytestream
  • multithreaded loading of files
  • preloading of samples to a user specified ram limit

Also, it doesnt seem like xmesh is caching the samples to ram at all, a second time playthrough takes the same amount of time as the first one did.

Thank you for your feedback and suggestions!

I assume these are both under Windows.

Does your mesh have consistent topology?

The 3ds Max XMesh Loader has a couple performance improvements that aren’t in the Maya loader yet. First, it keeps a cache for data that isn’t changing between frames. Second, it loads separate channels in parallel (verts in one thread, faces in another, etc).

The first optimization is mostly for meshes with consistent topology. I think you can reproduce this behaviour in Maya for consistent topology meshes using the animateXMesh node.

The second optimization is mostly for meshes with changing topology. I think we can add it pretty easily if you need it.

For sure. Improving XMesh performance is on our wish list.

That’s right, unfortunately XMesh doesn’t currently keep its own cache in memory.