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
Can anyone help me?
If there’s no solution, is there at least another way to pass vector arrays to niagara?