top of page

RTA VISUALISER - [WIP]

GALLERY

DESCRIPTION

The Raytracing Application Visualiser (RTA Visualiser) is a program I wrote that is used to configure a raytrace renderer and monitor the statistics of the render.

​

The raytracer itself is written in C++ which calculates the colour of a given pixel based on the objects that are present in the scene. This is a simple scene with a five spheres which have physics applied to them. The renderer will fire rays into the scene up to a certain depth, compute reflections, refractions and colour bleeding and output a frame as a PPM file. The frames are then built into an MP4 which you can view above in Slide 1.

​

This raytracer has the capacity to render the frames concurrently on multiple CPU threads which has decreased the render times significantly and spatial partitioning is under development.

The RTA Visualiser itself is a C# Windows Form Application built on top of the C++ Raytracer. Currently the application is responsible for providing the raytracer configuration settings in the form of a CSV file. This file is updated based on the settings on the top left (see Slide 2 and 3). 

​

Currently it fires off a different process to execute the raytracer. The raytracer will output the PPMs, an MP4 and some report information. This information currently consists of memory usage and frame completion times. 

​

The application outputs the standard output from the raytracer on the Visualiser and frame completion times on to a graph using the LiveChart package but will feature more details such as memory usage, time spent in certain methods per frame and how many times a method is called during the application execution in order to see where code optimisations are required.

C++ Raytracer

RTA Visualiser Application

On my university course, as part of Low Level Programming for Games we were assigned the task of improving a given raytracer framework by decreasing the execution time of the framework whilst learning speed and memory efficiency techniques. This meant implementing my own memory manager, raytracing optimisation techniques and code optimisation techniques.

bottom of page