So I managed to get the whole spawn in a band thing working, and well, spawning lots of normal blueprints is fairly costly, so I redesigned a few things so that I use instancing for the mesh and keep necessary data in arrays, my understanding being that what happens is you send the GPU the data for the verts once, and then pass a bunch of matrices, one for each instance, instead of sending the vert data many times.
The first issue is, for a mesh with 1,149 tris and 3,295 verts, multiplied by 1,000, would bringing my frame rate down to about 40fps be normal?
Using the “stat unit” thing during gameplay, Frame, Game and GPU are all around the 25ms mark, where as Draw is at 2/3ms, so what exactly does that mean?
That things are taking a while on the CPU so the GPU is forced to wait? What can I do to improve this, or would I have to delve into C++ for this.
Also, my GPU is a Nvidia GTX 980, and my CPU, rather old, i7 960. (Yeah, I know it’ll be a bottle neck)
Second, I can’t for the life of me figure out why the rotation in the transform is changing?
I set it during creation of the BP, but during the main loop it’s different, I don’t understand what’s going on.
Here’s what I’ve got, it may because I misunderstand something.
What I’m doing is, when creating the data for the instance, I generate and random location and rotation, feed that into the Instance Transform, I then also store the transform in a transform array by using the add node. Then inside the main loop, at the same point in the array, the value is different.
Spawn Function
Main Loop