A modular GPU raytracer using OpenCL for non-interactive graphics
- Authors: Henrique Nunes Jung, Vinicius Jurinic Cassol, Universidade do Vale do Rio dos Sinos, Escola Politecnica, Brazil
- Publication: SBGames, 2016
- Github
Abstract
We describe the development of a modular plugin based raytracer renderer called RenderGirl suitable for running inside the OpenCL framework. We aim to take advantage of heterogeneous computing devices such as GPUs and many-core CPUs, focusing on parallelism. We implemented the traditional partitioning scheme called bounding volume hierarchies, where each scene is hierarchically subdivided into axis-aligned bounding boxes, so a ray may only need to traverse a subset of geometry by traversing the BVH and discarding objects it surely cannot hit, optimizing the rendering process. These structures were implemented on a many-core high parallel architecture suitable for OpenCL, which needed a specific binary tree structure implementation ready for stackless traversal on GPUs. RenderGirl is split between two main portions: Core and Interface, where the Core portions provide the bulk of ray-tracing operations and manage the communication with OpenCL; and the interfaces provide communication with a given host program, seeking modularity. In this paper we describe our results and performance gains with our partitioning scheme.
Hybrid Ray Tracing Real time demo - Rigid Gems 2.0
This video is just a compilation of the ray tracing demo found at http://www.rigidgems.sakura.ne.jp/
The music is Coriolan Overture, Op. 62 - composed by Beethoven