It was difficult for me to bring over a particle/fluid effect, created in a DCC like Blender or Houdini, with all the detailed art-directed motion and volumetric properties left intact.
I decided to prototype an exporter that samples the effect from my DCC package and a particle system that lets me play it back in a realtime environment.
This is a standalone OpenGL demo, but I will be integrating it into the Unreal Engine after working out some more of the features:
The clip shows 94699 particles sampled at 60hz over 4.33 seconds, with per-particle variable lifespans & birth times, yielding 19,053,563 positions. The positions and attributes are packed into a texture used by shaders that move and render particles. If there’s enough interest, I can clean up the code a bit and post it on github.
Next up: adding little slices of color for each particle (these particles were advected through a shaded fluid sim), positions as deltas from previous positions (rather than final positions, to support external forces), and compression/optimizations.
How much space an effect takes up can be tuned by reducing the sampling rate, lifespans, and/or number of particles.