I wonder, which might be the use for the Blueprint Node BatchUpdateInstancesTransform. Not talking about BatchUpdateInstancesTransforms, which makes perfectly sense and works fine.
But that “single transform” for “many instances” function does not make sense to me, as having different transforms for each instance is what instancing all is about.
This node instead applies the same transform to all N instances beginning from start index. So they all end up at the same position. I tested and found no useful application for this, above image shows some test having 5 instances overall, and just updating the first 3 of them. As expected, these first 3 collapse to the same point.
I could for example understand a BatchUpdateInstancesRotation to apply a rotation change to a batch of instances while preserving position.
Looks like I’m missing something, so anyone can bring some light to my darkness?
Not sure, but Batch things are supposed to be very optimized both in the sense of execution and in the sense of serialization. In the sense of serialization BatchUpdateInstancesTransform size is less than BatchUpdateInstancesTransforms. For example, if you got 1000 instances and want 3 of them to be placed in one location you can use that with just setting Start Instance Index and Num Instances
Yes, batching aims for performance optimization, that’s why I found these functions to be useful. But I do not get the point, why I should set multiple instances to the exact same transform. They have the same location, same rotation, same scale in this case, so actually, they perfectly overlap and are visible as one single mesh only.
BTW, in that overlap case, I would expect to see some z-fighting, which is definitely not the case. So it could be the case, that ‘redundant’ instances just get filtered and are not rendered at all. So basically, instead of removing instances I could ‘hide’ them this way.