Scene Partitioning enhancement for Cloud Gaming in UE4

Can we partition the scene into Foreground and Background regions. The Foreground would be rendered on the client-side whilst the Background would be rendered in the cloud. The volume of the Foreground is bounded, hence the number of Foreground voxels are bounded, number textures and surfaces in the Foreground are also bounded. Also, the Foreground is the region that changes the most with respect to camera space, therefore, the Background can be rendered at a lower frame rate and combined with the foreground changes to produce a higher frame rates in game play.

The benefits of this implementation are:

  1. Latency: The Foreground, region A, is updated locally so no input lag occurs in game play. This allow twitch gaming for FPS and racing games.(Note input changes are sync to cloud)
  2. Network Bandwidth: The Background gets rendered at lower frame rate, example, for 4Kp60 game play, Viewport U can be 4Kp30 with Foreground changes added to generate 4Kp60 in Viewport V.
  3. Data Usage: Lower bit-rate of Viewport U and caching of Foreground assets allows lower total data usage on complete play through of a game.
  4. Availability: Lower device specs than whats required for Kalydo and Approxy, and lower network requirements than Sony PSN and Nvidia GFN

Changes:

  1. Add compositor (Stencil shader) for Viewport V which combines Foreground with Viewport U
  2. Add z-buffer rule to partition scene into Foreground and Background
  3. Add distributed cache for progressive download of Foreground assets (look at NCache,redis, or memcached)

Scene Partitioning

Started development, please see sheldon / M4GfxExtLib · GitLab
This feature will be part of a cloud gaming plugin.