Hello. I’m wondering what the performance impact is on having a blueprint with many separate static meshes compared to having them individually. I know lots and lots of separate objects impacts performance more than having a single object to reasons which I don’t fully know yet, so do blueprints eliminate this seeing as they’re often used to make lots of object instances like fences and whatnot? If I made a single blueprint that randomly furnishes a room small with static meshes, would it be easier on performance than having all the static meshes as individual objects? Or again with the fence, is it more performance friendly than placing 25 or so individual posts?
First of a blueprint is more like a holder of assets, and as far as I know have no real impact on the rendering of an object, (not counting the cost of the actually blueprint itself), and as such shouldn’t matter for rendering, don’t take my word for this tho, since I haven tested or read anywhere to the contrary, but I would wager it doesn’t from experience.
If you do want to combine static meshes you would do that outside of unreal by merging both the meshes and the textures into single assets, Simplygon is useful for this.
Finaly this question has allot of gray in it and as such is hard to anser with a yes or no. This is because separating objects kontra keeping them as one large object is both good and bad, depending on the situation, what your developing for and what performance you target platform has, large object cost less draw calls, but instead cant be culled as efficiently. Also each different material used is in effect another draw call, so a large object w allot of materials still ain’t very good and also isn’t very good for culling so. allot of gray.
It would help to answer this better if I knew what you were developing for, mobile or console/pc?
Hope that helped clarify ^^
ps: This is a good rundown of some common performance guidelines.
Thanks for your reply. This is more of a generic question than what’s best for a certain scenario. First off I don’t mean whether an object would be harder to render, the polycount and everything else should remain the same whether it’s in a blueprint or not.
Specifically what I mean is the object count.
As I know it, having 1000 small cubes, all as separate objects placed in the level editor is more of an impact on performance than having 1000 cubes, all as a single mesh.
What I mean with blueprints, if I placed those 1000 cubes in a blueprint, would it have the performance impact of a single mesh, or the performance of 1000 individual cubes?
This is all hypothetically speaking, not taking into account culling or anything such, but simply the object being there, in view.
If there is any difference, witch I think there isn’t, its most likely still so small that its overshadowed by the actual draw and fill costs. This would be interesting to know for sure tho, We would need a some unreal dev for that probably - since the difference would most likely be to small to detect with just measuring frame rate in a test.
On the 1000 cubes things btw, that also is dependent on allot of factors - there relay isn’t much of a difference if they all have the same material, (if the meshes are separate, as in not actually vertex merged), in most cases. What would make a difference is if the cubes have smooth normals and merged uv’s or hard edges and separate uv islands.
I am currently working in VR and when working this way I could tell this was having an impact on frame rate/performance. I built some large set chunks in editor out of a prototype geo set that I built, I then converted them over to a BP for ease of use for looking at multiple copies and making some quick visual design decision. There wasn’t really any big cost in editor but when playing in VR there was visible slow down in performance. I then converted the BP to a static mesh and performance was back to normal. So my current thinking is use the BP for shape creation/design and then convert that over to a single static mesh for better performance. I’m currently using this workflow for block out or proxy stage of development.
I was wondering if it was because the blueprint wouldn’t let individual mesh get visually occluded separately. But I looked it up and it seems that meshes part of a blueprint do get visually occluded individually. Unless my eyes are tricking me.
Did you by any chance figure what was causing the BP to slow your performance?
I had to use the blueprints for prototyping purposes, knowing the performance would be bad, then I had to combine all the objects together as one mesh to get the performance hit to go away. Not really an ideal situation for me.
So the issue wasn’t so much about the BP but the actor count - since you had to combine all together as one mesh?