How expensive are Blueprint actors? Cheap enough for use as foliage?

I’m looking into the ability to set up forests, ground coverage and other interactables using Blueprint actors. I haven’t seen this discussed anywhere before. How expensive are Blueprint actors?

Naturally, you wouldn’t want each grass mesh to be an actor. The engine has enough trouble with regular foliage meshes as it is. I’m more interested in trees. Would it be possible to populate an entire forest with each tree being an actor without destroying performance? I’m currently experimenting with tree felling/cutting, and this would be something I’d want to manage in a blueprint (along with various seasonal changes in material, and regrowth should a tree be cut down.

It’s a bit of an open-ended question (“How long is a piece of string?”), but I figured I should ask here to see whether anyone has any information to share on this concept, or whether there is a better approach while still keeping the same level of control over each tree / bush / mushroom / etc.

Thanks, as always! =)

I understand this is an ages old post, but I have the same question. How much overhead is added for an actor with say only a mesh and couple of vars inside?

It depends what it has and how it is configured. First of all you need to understand that actor is more like a container for components that preform actual function, and those components may introduce different performance weights. But component it self is just a shell for a function, and if they don’t tick can be performance free too.

Actor with tick disabled, without (functional) scene components takes nothing, other then memory. Actor with a mesh on other hand will take draw calls which tasks the CPU… so too many of them might hit performance, but if you use same static mesh that won’t move, then you can use instanciated mesh component, to render all of those with single draw call.

You can read about it here:

Diffrent components may have there own little optimizations

There’s an idea: You could tell them not to Tick unless they’re visible or within a certain range of the player (assuming single player), then turn the tick on.

mesh actors dont tick by default, but it still they generate draw calls