TArray<FVector> to Render Target pixels/Canvas - how to do it FAST?

Hi,
I need to pass an array of vectors(RTS Unit positions) to niagara per frame

As Set Niagara Vector Array Function doesn’t work (temporarily???) for some reason, I need to find another solution
First thing I thought was passing every unit’s position to UCanvasRenderTarget pixels, and I think it’s a good idea, I got it to work BUT:

I got it to work by drawing empty texture By UCanvas::DrawTexture on pixel coordinates and setting RenderColor to the vector value (doing this for each unit)

In result, when having 1000 units I get 2000 DispatchCanvasRenderCommands calls and an enormous performance drop

I believe there’s a more optimal approach

And I thought I found a solution, Making a UTexture2D from color array and then passing it to the canvas once per frame (this would generate much less calls I believe)
But UTexture2D objects use FColor instead of FLinearColor, and FColor only has values from 0 to 255, or from 0.f to 1.f

Aaaand at this point I’m out of ideas :frowning: Can anyone help me?
If there’s no solution, is there at least another way to pass vector arrays to niagara?

you can find the maxium extent of your world and then clamp your unit locations from that range to a whatever range the FLinearColor or FColor accepts. If your world is massive, there will be small errors when recalculating the world positions, but this should work i think