Use Cases:

Cloud Rendering

Perform 2D or 3D rendering in the cloud with full GPU acceleration via NVIDIA Docker.

Contents

Overview

The NVIDIA Docker runtime allows Unreal Engine containers to run in the cloud with full GPU acceleration, facilitating server-side 2D or 3D rendering. GPU-accelerated containers augment existing cloud rendering workflows with all of the advantages inherent to containerisation, including increased density and compatibility with container orchestration technologies. Rendering results can be captured, stored, or streamed to remote devices in much the same manner as when performing cloud rendering inside VMs. Container-based cloud rendering can also be combined with existing RPC frameworks to create GPU-accelerated microservices powered by the Unreal Engine.

Key considerations

Approaches

Base image selection

Packaged Unreal projects do not require the Engine Tools and can run in any container image that includes the required runtime libraries. As discussed in the Sources of base images for running packaged Unreal projects section of the Available Image Sources page, container images that will perform rendering must be derived from the nvidia/opengl or nvidia/cudagl base images. Beyond this single requirement, developers are free to design their runtime base images as they see fit.

Using a preconfigured base image

There are a number of pre-configured base images maintained by the community that can be used to quickly create container images suitable for cloud rendering workloads. These images often provide multiple variants to cater to common cloud rendering scenarios. See this section of the Available Image Sources page for a list of available preconfigured base images.

Writing a custom Dockerfile

Writing your own Dockerfiles for building runtime base images is quite straightforward:

Building container images for deployment

Copying packaged projects into container images from the host system

There is no inherent need to use Unreal Engine containers to build and package projects that will be deployed using Unreal Engine containers. If you’ve built and packaged an Unreal project for Linux on the host system then you can simply copy the packaged files into a container image using a COPY directive in your Dockerfile.

Creating container images as part of the build process for projects

If you’re already making use of Unreal Engine containers as part of a continuous integration workflow then you can use a Docker multi-stage build to build your runtime container images as part of the overarching build process. See the Building container images for deployment section of the CI/CD page for more details on this option.

Capturing rendering output

There are a variety of different mechanisms that can be utilised to capture cloud rendering output. Each mechanism is suited to different scenarios and offers different advantages and limitations:

This content is landing soon!

Be sure to check out the Unreal Containers Twitter feed for news about content updates.