I’m at the point in my development in the engine where I’m beginning to concern myself with optimization. Ideas are:
All expensive/semi-expensive static meshes should be blueprinted. (Correct me if I’m wrong, but higher triangle count equals higher cost? If so, I’ve gotten into the habit of using simple planes with materials wherever possible, instead of the fully realized static mesh.)
1a) A single “zone actor” will hide these actors when they are far enough away or meet some protocol (like entering/exiting a building).
1b)This ensures that there’s only ONE tick function controlling the behavior of tens of assets. (Truth be told, I don’t really use tick functions. I actually create controlled loops with delays. Ticks can be unruly and result in DOUBLE PULSING).
World partitioning should be used as a supplementary technique to render and hide unused landscapes. (From what I’ve seen, it’s good for simple culling, but not necessarily the best solution?)
Nanite as a tertiary contributor, mainly because MOST of the Marketplace’s assets do NOT support Nanite. (Right now, Nanite should only be used with Quixel assets, no?)
Any ideas or verification that my conclusions are either correct or improvable, would be welcome; there are so many ways to do everything.
When it comes to static meshes you have to think about draw-calls. I suggest reading about it more if you have a strong interest in optimization. All in all, making a static mesh into a blueprint will not help much. However, it can be great if you you to create reusable components that can be efficiently instantiated and manipulated at runtime. Additionally, blueprinting can also make it easier to manage and modify the properties of multiple instances of the same static mesh, as you only need to make changes to the blueprint rather than each individual instance.
World partitioning can be effective for simple culling, but other methods such as frustum culling and occlusion culling can also be used to determine which objects are visible to the camera and should be rendered.
Nanite can help reduce the memory footprint and improve performance of highly detailed assets. Nanite in and of itself is more demanding to run than not having it run at all. Basically, if you are not leveraging the system it’s just not going to be helpful. For highly detailed assets, it should absolutely be used.
I KNEW I recognized your screen name.
I’ve seen a couple of your vids on Youtube. I’ll check your catalogue out, but in the meantime, I’m going to research the techniques you suggested.
I create a series of small projects that focus on skill-building (quests, animation, world building, visual effects like weather, etc). I have a “checklist” that I need to complete before I start my commercial game project.
Hopefully you have a video detailing the expanded cull techniques. If not, I’ll read/watch up on it.
Haha, always fun to be recognized! If you are interested in what I have done this would be the best source: https://elias-wick.com/
Sounds cool! You can always ping me if there is something or a question comes to mind! I may not always have the capacity or time to answer, but I try my best!