Issues with large-scale caching in UE rendering

Project Background:

I am working on a 12-minute, 60 fps, 360° panoramic VR project. The total frame count exceeds 43,000 frames. All elements must be rendered directly in Unreal Engine, without relying on post-production compositing. A large number of VFX elements are created in Houdini and can only be exported as Alembic (ABC) caches for rendering in UE. There are many VFX elements, with more than 50 different types expected to be used simultaneously.

VFX Cache Overview:

[Image Removed]

Technical Approaches Tested So Far:

1. Use frame-by-frame Geometry Cache assets. In Sequencer, Geometry Cache assets are switched frame by frame by keyframing the Spawned property.

[Image Removed]

2. Use frame-by-frame Static Mesh assets. Similar to the method above, assets are switched frame by frame in Sequencer by keyframing the Spawned property, but the data type is changed to Static Mesh. However, crashes can easily occur during import.

3. Increase the Compressed Position Precision value. Increasing the Compressed Position Precision value reduces the data size. Testing shows that this does not reduce the actual polygon count; it only reduces the cache size per frame. It is unclear whether this can reduce UE memory usage

[Image Removed]

[Image Removed]

Import and Render Test:

• ABC cache size per frame: 166 MB; approximately 870,000 polygons per frame.

• 50 frames were imported, and 40 copies were placed in the scene.

• At this point, more than 100 GB of the system’s 128 GB of RAM was already in use.

• Therefore, it is not possible to place all content in a single scene for rendering. Once memory is exhausted, UE crashes immediately

[Image Removed]

Core Question?

How can memory usage be reduced so that Unreal Engine can handle and render Alembic (ABC) caches at this scale?

[Attachment Removed]

Hello,

Apologies for the delay.

Use frame-by-frame Geometry Cache assets. How can memory usage be reduced so that Unreal Engine can handle and render Alembic (ABC) caches at this scale?

We generally recommend using one Alembic cache per shot instead of per frame so that you can utilize Geometry Cache streaming. It’s likely with the frame-by-frame asset approach all of those assets are loaded instead of being released like what would happen with streaming.

I’ve reached out to my colleagues who are more familiar with this area for additional recommendations.

[Attachment Removed]

I initially used a single Alembic cache file, but it was several TB in size

Was that one single Alembic cache file for everything in the shot or was it one file for each asset in the shot (Building, River, Car etc)?

[Attachment Removed]

Can you break the shot up into pieces - not down to the per-frame granularity, but large enough that you can load every Alembic cache file without UE crashing and render that? For example, 1000 frames for each asset instead of the 19,800. And use a different sequence for each 1000 frames, rather than a single sequence like you used with the per-frame approach which causes all the caches to be loaded at once instead of using streaming.

[Attachment Removed]

I initially used a single Alembic cache file, but it was several TB in size, causing UE to crash as soon as it tried to read it. That’s why I switched to a frame-by-frame cache approach.

[Attachment Removed]

One file per asset. for example, one building effects alembic cache with 19,800 frames. vehicles and rivers with the same frame count.

[Attachment Removed]