I’ve submitted my Instanced Static Mesh Editor Feature to Epic! You can support it if you would like it added to the engine!
Watch my fps go from 9 back to 120 after I convert all the static mesh actors in the scene into one instanced static mesh with a single key press!
The process can be reversed at any time to make further edits!
**Plugin Version**
You can try out the plugin version of my pull request any time!
**More Info**
https://forums.unrealengine.com/showthread.php?3851-(39)--s-Extra-Blueprint-Nodes-for-You-as-a-Plugin-No-C-Required!&p=243810&viewfull=1#post243810
Video 1
This first video is the plugin version, where I demo the core usefulness.
My fps goes from 9 back to 120 once I convert all the static mesh actors into an instanced static mesh.
I then demonstrate going back in and editing a single instance and then restoring the whole structure to being an instanced static mesh actor again.
What can I say?.. Do want. In terms of preventing headaches, the scene cleanup aspect of this is almost as important to me as the performance gain. Unreal’s outliner is god awful. Can’t wait to get my hands on it.
This feature will change lives. I was forced to used Instanced Static Meshes for repeatable Actors due to poor performance when Level Editing on my low spec workstation. I also use rudimentary Static to Instanced Static Mesh conversion process in GOLEM Construction. This feature will improve the GOLEM construction process Ten-fold.
Alright ! Very nice and definitely a needed feature. Man I needed this last month… lol. I created a BP literally last month that toggles between ChildActorComponents and using a separate InstancedStaticMeshComponent for every unique mesh to achieve the same effect. Great job!
This is a great feature, and I see the improvement in the editor right away FPS-wise, but for some reason building the project makes all the new instanced mesh actors dissappear from my game! Their shadows remain, but otherwise they’re gone. Trying to figure out what I did wrong…
However, it looks more like you are combining meshes into one and not really instancing them. If they were instanced then each one would still be its own separate actor in the world individually moved and rotated at will and not the single mesh in the end. I’m not trying to nitpick, but those would be 2 pretty different things going on there. Though they more or less achieve the same end result performance wise, just with different aspects exposed to the end user.
There is only one mesh, but its not all of them combined - its just the original ‘box’ or what ever static mesh you use.
Hence, if you want to use this feature, all the static meshes you combine must be exactly the same.
This takes all the matching meshes, get the world transform information for each and combines them all into one actor.
It can then tell the rendered to render the mesh X amount of times based on the transform info it got earlier.
Nice , just a question, do you take care of octree partition when you do this or just replace everything with 1 mesh. I am asking you this because if you take care of octree, this can be super awesome, else there is room for optimization, because you will upload to video ram just whats visible instead a huge mesh.
Sure the ideal case to minimize states changes are to render once all. But that’s not always possible. In that example you actually cheat a bit, because you use same material for all meshes:)
Edit: all I’ve wrote is ****, for a second I was thinking you are doing a mesh consolidation:) I did even think engine don’t do auto instancing.
Please help! I love the plugin, it’s amazing, but while things look fine in the editor, when I package my project all the new instanced meshes disappear and aren’t visible at all in the finished game. I am sure I’m doing something wrong, but for the life of me I can’t figure out what. 4.7.2 and it’s a C++ project, or rather a project that started out as a Blueprints one, but that I’ve added a couple of C++ classes to over time.