Performance Optimization with SceneCapture2D

I am looking for any suggestions regarding performance optimization when using the SceneCapture2D. Some Background of my setup:

  • I have 8 scene captures in the scene - 4 capturing animation / movement, 4 capturing shadow data. They are separated out because it’s being brought together in a top-down texture, combining 5 separate UV sets (4 perspective cameras, 1 orthographic camera out) and I needed to hide certain things based on the perspective of the camera with a real-time out cam that is being spouted into Touch Designer.
  • The final material connects the 4 perspectives and a top down background texture that is the render out (please note this is not for game builds but realtime perspective-based interactives)
  • In order to get the perspective with the shadows, I have a plane that I’m essentially color-keying out in the material in order to not have any conflicting base geometry
  • The reason I don’t want the geo showing in the perspective render target is because I need the top down camera to control the background texture, which is why I have the plane setup capturing the shadows (my workaround for not being able to shadow cast on a transparent object)

The problem: I’m currently getting approximately 33fps on my scene when activated, however the machine this will inevitably run off of will have a much lower graphics card that what I’m working with. My goal is to get somewhere around the 45-50fps range to have a buffer. My current optimization steps have been the following:

  • In the Advanced Show Flags I’ve turned everything off not being used, from atmosphere to foliage, etc
  • In the Post Process Blend Weight, I’ve set to 0
  • In the shadow-pass SceneCapture2D nodes, I’ve halved the out resolution, as it is not needed to be high

Are there any suggestions for scenecapture2d optimization I haven’t thought of? Any thoughts or suggestions would be greatly appreciated, because I’m drawing a blank outside of restructuring my anim vs. shadow render targets (upon deleting the shadow targets I get in the range I want), which I don’t have immediate ideas of how to capture shadows given the necessary perspectives. Thank you in advance!

First off - can any of the scene captures be disabled at any time? Extra scene captures are among the worst things for performance. We have apps with multiple scene captures but aggressively shut them off when possible.

Second, what’s the use case? Can you do this without 8 scene captures always running?

I’m now trying to rework the top-down material that’s capturing all this data, and finagling only 1 scenecapture to have both the animation + shadow to limited success, but relatively promising results. If I can halve them, I’ll get in the range I’m looking for.

The use case unfortunately requires them to be on at all times, as it is an experience with minimum of 4 person interactives that need perspective based on where they are, and it’s an entire show / output based in those perspectives while maintaining a top down bg. A requirement is also custom anim per seat, so I can’t duplicate the screencap across all 4 and simply use 2 (anim + shadow of 1 perspective).

Based on what I’ve read in previous posts / forums, I think I’ve optimized the screencap as much as I can, and it likely will come down to restructuring the out material to combine the shadow and anim (I think I’ve officially hit the wall of simultaneously rendering 8 targets and am about as close as I can get). That’s the only thing I can think of that will truly get me to that 45-50fps that is necessary.