Implementing and Evaluating CPU/GPU Real-Time Ray Tracing Solutions
Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE creditsStudent thesis
Ray tracing is a popular algorithm used to simulate the behavior of light and is commonly used to render images with high levels of visual realism. Modern multicore CPUs and many-core GPUs can take advantage of the parallel nature of ray tracing to accelerate the rendering process and produce new images in real-time. For non-specialized hardware however, such implementations are often limited to low screen resolutions, simple scene geometry and basic graphical effects. In this work, a C++ framework was created to investigate how the ray tracing algorithm can be implemented and accelerated on the CPU and GPU, respectively. The framework is capable of utilizing two third-party ray tracing libraries, Intel’s Embree and NVIDIA’s OptiX, to ray trace various 3D scenes. The framework also supports several effects for added realism, a user controlled camera and triangle meshes with different materials and textures. In addition, a hybrid ray tracing solution is explored, running both libraries simultaneously to render subsections of the screen. Benchmarks performed on a high-end CPU and GPU are finally presented for various scenes and effects. Throughout these results, OptiX on a Titan X performed better by a factor of 2-4 compared to Embree running on an 8-core hyperthreaded CPU within the same price range. Due to this imbalance of the CPU and GPU along with possible interferences between the libraries, the hybrid solution did not give a significant speedup, but created possibilities for future research.
Place, publisher, year, edition, pages
2016. , 43 p.
ray tracing, computer graphics, graphics, embree, optix, opengl
IdentifiersURN: urn:nbn:se:mdh:diva-32076OAI: oai:DiVA.org:mdh-32076DiVA: diva2:939130
Subject / course
2016-06-25, Kappa, Mälardalens Högskola, Västerås, 11:35 (English)
Ameri E., Afshin