Fastest way to render data points

I am working on a VR data visualization project, and am looking to render hundreds of thousands of data points in 3D space, each with the same geometric shape (either a cube or billboarded sprite) but varying position, size and color. I’m currently using an instanced static mesh to render ~50 000 cubes, but changing their color is a bit of a pain. I’m also concerned that this won’t be a sensible way to render hundreds of thousands of data points @ 90 fps. The other options I’m considering are (a) using a particle system or (b) going the manual way and writing the shaders myself. Is there a simple way to use the existing particle system to spawn specific particles (rather than random ones)?

Recently I did some research on the same topic, this is pretty much the only thing I found on the internet.

I’ve not yet tested it, but maybe you could report back in case you find it interesting.

Cheers!

I’m doing this. So far using particle systems with positioning of the particles primarily in the material shader (using WorldPositionOffset). There are forum threads about this around here somewhere but I don’t have them at hand right now. This works quite well for a few hundred thousand particles but I’m pushing it further and I’m looking into additional options. One route might be to turn it into a volume rendering - I have not really tried this myself so far. If you’re interested in Volume Rendering you can look into these threads:
https://forums.unrealengine.com/development-discussion/rendering/91596-your-thoughts-on-and-comments-to-volume-rendering-in-unreal-engine-4

There is no easy way to position particles manually. You can do it using C++ but it’s a bit involved. You can check this plugin to see what’s possible though. Might want to contact the plugin author?