Output log get's spammed with messages from HISMC
I have a Hierarchical Instanced Static Mesh Component in my game where trees are inside, and these trees are growing, so the instances are updated regularly.
With a usual ISMC I had no problems, but the hierarchical one is spamming my output log with messages like:
LogStaticMesh:Display: Discarded foliage hierarchy of 2 elements build due to concurrent removal (0.0s)
At the moment my trees are growing once a second, so I see this message once a second.
asked May 22 '15 at 12:26 AM in Using UE4
Hi John -
Opening the Construction Script of the TerrianMorph Blueprint in my tutorial, you will follow the path and come to a commented section "Create Instanced Static Mesh Components to use as templates, once for each mesh type." If you look closely at the logic, the construction script allows the user to predefine a series of mesh types (in my tutorial I use it just for grass, but the same logic can be found in Blueprint Office where we spawn grass, weeds and wildflowers). Each predefined Mesh type is then instanced so in my tutorial I have many instances of the grass mesh, but because it is all instances of the same mesh, it is only one draw call. In the blueprint office, you would find 3 draw calls.
You are correct in that I do not use Materials to change the size of the grass it is a change to the relative World Scale of the mesh, but works just as efficiently and probably slightly more performant than trying to manipulate the WPO of the material. The only difficult part is setting up your arrays that are necessary for storing of the mesh scales from generation in the construction script so they can be called again at runtime.
answered Jun 09 '15 at 04:03 PM
Lovecraft_K ♦♦ STAFF
I was able to reproduce this on my end and have entered a bug report, UE-16224 to be assessed by the development staff.
answered May 27 '15 at 07:01 PM
Hi John Alcatraz,
Our developers took a look at UE=16224 and determined that the output log warning is working as intended. I did some more digging and discussed with them about the reasoning behind this. Hierarchical Instanced Static Meshes are not designed to be transformed every frame. These components are bound to a bounding volume tree, which needs to be rebuilt every time something is moved or changed. This ends up taking longer than rendering itself and becomes counter productive. The developers mentioned that while it isn't the best idea to rapidly transform Instance static mesh components either, that is more dependent upon how many you are moving/changing at once and not as limiting in this regard as HISMC are. This is because it requires uploading the entire instance buffer to the GPU every frame plus additional data conversion.
answered May 29 '15 at 09:00 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here