+ UE added automatic instancing for mobile. You enable it by adding 'r.Mobile.SupportGPUScene=1' to the 'DefaultEngine.ini' (Quest).
When analyzing your app in Renderdoc it will report the instances but in the TextureViewer the instances will be pitch black (reported to UE).Also, I noticed that the algorithm still misses some objects sometimes (I haven't found any logic yet why some are missed - reported to UE).
I finally got some time to test the auto instancing and my observations:- If you apply a dynamic material instance to the mesh auto instancing no longer works (generates a drawcall for each mesh) this is a realy bummer for me but probably by design? 😞 One potential workaround for some situations is to use a material collection parameter instead which works but of course is applied globally to all meshes then (ideally I would like to change the material on only some of the instances)- Physics works still works! which makes it instantly better than the default "instanced static meshes"
Probably worth reporting the issue with dynamic material instance to Epic.
do you mean by "physics works still works" and it's "better than
instanced static meshes"? I am not sure about the relation between the
ISM Instanced static mesh components do not support Physics (the physics checkbox is greyed out and was a commonly known limitation of using them). These autoinstanced meshes still support physics which is great for my particlar use case.
New finding: After turning auto instancing on in the project I'm currently working on, auto instancing is not working (I was testing before on a simple test project), even after removing any dynamic material instances, so there is some other limitation as well which I'll try to figure out soon. Edit: was a user error on my side
I also noticed that when you make HISMs yourself (using an
actor), the instances seem to break apart now based on their LOD. I'm
not sure about the LOD part, I am about the breaking apart into
smaller chunks though.
- and for some reason, the algorithm sometimes just doesn't turn a few copies into instances. No idea why. You could have 4 or 20 of the same objects and a few of them would still be unqiue.