MRTracer is a real-time path tracer that renders scenes remotely on a selected environment and streams the results to a client application running in the browser.
MRTracer utilizes a GPU-based path tracing implementation using CUDA, requiring the remote rendering environment to be equipped with NVIDIA GPUs with CUDA support.
Rendering results are displayed in the client application within the browser. MRTracer supports multi-GPU rendering and allows users to choose from various load-balancing algorithms based on frame splitting to distribute the workload efficiently among devices.
MRTracer consists of three components: the Client Application, Relay Server, and Compute Node.
-
Client Application – Runs in the browser, allowing users to choose rendering parameters and select the scene to be rendered. It displays the rendering results and enables users to move the camera around the scene. Additionally, it provides key metrics to evaluate the performance of the rendering algorithm.
-
Relay Server – Manages connections between Client Application instances and Compute Nodes running in Compute Environments. It initializes the connection to the remote environment selected by the user, starts the Compute Node, and facilitates data transfer between the Compute Node and Client Application, including rendered frames and configuration updates.
-
Compute Node – Runs in a remote Compute Environment, executing rendering algorithms. It manages and distributes the workload across GPUs while also collecting performance metrics.
$ cd ./ComputeNode
$ conan profile detect --force
$ conan install . --build=missing --output-folder=build
$ cmake -S . -B build
$ cmake --build build
$ ./build/mrtracer
$ npm install
$ npm run dev
$ npm install
$ npm run dev
MRTracer’s parameters can be configured in the Client Application via the left-side panel. The panel is divided into four sections: Load Balancing Parameters, Path Tracing Algorithm Parameters, Scene Parameters, and Miscellaneous Settings.
The Render Statistics Panel on the right side displays real-time metrics essential for evaluating the quality of the rendering process. By default, the panel shows a chart with the FPS (frames per second) metric. Users can add additional charts to track desired metrics by clicking the Add New Chart button.
Each chart has:
- X-axis: Represents the timestamp of the recorded metric values.
- Y-axis: Displays the metric values.
MRTracer enables the execution of the Path Tracing algorithm across multiple GPUs. When the user selects the option to visualize frame splitting in the settings, borders will highlight the areas rendered by each device in every frame.
MRtracer was used for the bachelor thesis project "Platform for investigating scheduling algorithms and resource utilization for Path Tracing in multi-GPU environments"