Menu Close

3dsMax tips #6 – Viewport GPU caching with Alembic Performance Mode

First check this video. 4.7 million tris/2.4 million verts playing @ 49fps on GTX960/Ryzen 2700X

I know you can not believe this. So, what’s the secret sauce? Alembic Performance Mode.

3dsMax 2016 introduced alembic import/export into 3dsMax. One of the feature was Performance Mode in Alembic Container object, the auto generated root object when you import alembic.

It does 2 thing.

  • Generate a Nitrous ready animated GPU cache of all children.
  • Temporarily hide all children from scene to clock any evaluation.

Even tho it was originally developed for only alembic cache, it added support for any generic object in 3dsMax 2017. So, if you make an Alembic Container object and link any object under it. You can generate the GPU for the objects just like alembic objects.

Like this. You can keep the original rig hierarchy under AlembicContainer. AlembicContainer will pick up all descendant under him.

* Sometimes explicit normals can cause issue. If you are using 3dsMax 2022.2, you can just apply Smooth modifier to clear all explicit normals. Or, check my 3dsMax tips #3 How to make imported tree animation 15 times faster

Now,Click “Performance Mode” button. You can see all object under AlembicContainer disappeared from Scene Explorer, and all geometries are combined as one cache. You can also see yellow bar on timeline which means indicated that uncached frame.

Now if you go to any frames, that frame will be cached or play animation while turn off Real time playback to make sure for max to evaluate every frame.

Or, there is a better way. just press “Force Caching” button.

Then, you will see the yellow bar is progressing as green bar.

Make sure turn off the above “Real time”, and try to scrub or play animation. This guy was playing at 42fps before. Now it is playing at 140fps.

So, this is how I could play 4.7 million tri at 48fps.

This is not perfect. But, when you have to light heavy scene, it could be very useful. Or, if you need to make preview from multiple angles. It could save time, too. But, this feature is not play well with Real time option(literally). So, it will be hard to use for animation real time preview.

A fewthing…

  • You can choose to cache geometry only since anything other than geometry will not be include the cache in anyway. But, if you put the entire rig under AlembicContainer, it will block the evaluation of the rig which will improve fps even more.
  • Even tho you could do this in 3dsMax 2017+, I recommend to use 2019+ because 2019 would only cache animation range and a lot stable than previous version.

Now I want to ask you a favor. as you can see this tool has amazing potential. But, it also misses some features. I hope I could save/load cache instead of re-generating every time when I open max file. Also, I want to explicitly choose object to cache instead of relying on hierarchy. Also, it doesn’t like when Real time playback is On. So, I created user idea item and need your vote.

https://forums.autodesk.com/t5/3ds-max-ideas/allow-to-save-alembic-performance-mode-cache/idi-p/10672171