Movable Actor Lighting/Frame Rate Issues

Hey everyone!

I need some help with an issue I’m having.
I have a custom actor class that I’ve blueprinted, and it contains 2 movable static meshes.
I’m assuming they have to be movable or they won’t have dynamically changing shadows. Right?
On command, one fades out and the other fades in, based on specific game variables.

I have them set by default to not worry about static shadows, which improved my frame rate a bit.
While one is fully faded, the other one is set to not be visible to save on render time.

I even tested it with different (basic) materials (Which don’t fade, only a diffuse colour) to see if my materials had too many instructions.
I ended up with the same results.

Now with hundreds of other actors in the scene, I’m still sitting with around 120fps, but for every one of these blueprints, I lose about 5fps.

I checked the different threads, using “stat UNIT” and its all down to the GPU thread.
With them sitting Idle, not updating anything, no parameter changes, etc, they still eat away at the render time.

The values shown here are with just one half of each Blueprint being visible.
When they are changing for those 5ish seconds, the GPU time doubles.

So without changing global dynamic shadow settings (becuase I am happy with mine for everything else),
What should I do do decrease their GPU load?

Can I change how accurate the shadow is from these specific actors?

I’m willing to try anything at this point, because these kind of transitional objects are necessary dynamics for my world.

Thanks guys!

Do a ‘profilegpu’ and snoop through the results.

If that’s with a Stationary directional light, all the objects are going to create per-object shadows, which have a high cost per object. You can enable Cascaded Shadow Maps and disable the per-object shadows by setting DynamicShadowDistanceStationaryLight to 2000 or so and uncheck bUseInsetShadowsForMovableObjects on the directional light. With these changes, everything will render dynamic shadows instead of just the movable objects, and it can be faster that way (with enough movable objects).

Hey ,
Thanks for the reply!

I started profiling the gpu, and it seems to be coming from only one of the movable actors under the directional light.

All other subsequent objects have minimal overheads.
I’m assuming that’s just smart management being used.

I changed the settings, and voila! Back up to a smooth 80-90 fps!

Works like a dream! Although, I’m still seeing a drop of 30-40 frames for very simple objects. And with more objects, the higher the decrease will be.
(Also I’m getting severe shadow popping now)

Are there any settings I can change on the objects themselves to gain better performance?
(They never actually move, just mesh transitions).

Thanks again!