Applicant
Prof. Dr.-Ing. Kai Selgrad
Computer Science and Mathematics / Computer Graphics
Ostbayerische Technische Hochschule (OTH) Regensburg
Project Summary
Path tracing is a common method for accurate light transport simulation, as used in the movie and animation industry. By simulating millions of light paths through a virtual scene and computing their interactions with the surfaces they collide with, a realistically lit image can be generated. This technique is computationally expensive, with single images of a movie taking up many minutes of high-end compute hardware. The ray casting operation, where the closest collision point with the scene geometry in a given direction is computed, is traditionally the most expensive part of this process. With highly optimized routines freely available for this operation, we wanted to optimize another part of the path tracing pipeline, namely the material evaluation, that takes up an increasing amount of the total computation time.
To optimize this algorithm,we modied the material evaluation code to make use of the Single-Instruction-Multiple-Data capabilities of modern CPUs. This was accomplished using AVX-512 compiler intrinsics. By utilizing these capabilites, we can calculate the surface interactions for 16 rays all at once, instead of serially. In order to facilitate the ecient use of this parallel capabilities, we needed to modify of the general path tracing algorithm structure and the memory layout of the input data. This restructuring also enabled us to sort and compact the path tracing data in-between iterations to make sure the parallel capabilites of the CPU are used fully.
With the described methods, we were able to reduce total rendering times of our already moderatly optimized path tracing algorithm by more than 10%, with better improvements in favourable conditions.