Multiple cameras rendering to screens tanking performance

Hi there

We’re currently working on a project in which numerous cameras are set up, feeding streams to planes in game like CCTV screens. There are currently 12 cameras set up in various places that all render to the panels that act as CCTV screens.

The method we are currently using is really heavy on performance and drops FPS into the single digits. The current workaround we are using is that the CCTV screens render a flat texture render of the scene it is looking at until something comes into view, at which point the actual camera feed becomes active.

The problem is, we want cameras to be panning and we want moving things in the environment, which obviously doesn’t work with static renders.

What would you suggest we do?

2 Likes

The problem is due to the necessity of re-rendering level geometry multiple times in a single frame. The solution would be to activate only a single (or very few) camera(s) in each frame and looping through them. This can be achieved by creating a blueprint that manages camera turns through a multi gate node (if you have a constant number of cameras in every level) or a camera array (if the number of cameras might change). Assuming you want a 60 fps rate with 12 cameras, this would mean each camera would update 5 times in a second. You can allow the player to choose the total number of cameras that would be rendered in a single frame as well if you want to make it customisable.

In order to improve performance, go to your scene capture components and set:

  • Capture source = Scene Color (HDR)
  • Max View Distance Override to a small value (that still captures all of the visible geometry)

Is this clear enough or would you need some blueprint screenshots?

1 Like