The Pray/P-ray Engine is an experimental 3D rendering engine which renders polygon scenes using ray tracing techniques. It includes features such as support for normal maps, surface transparency, colored shadows, anti-aliasing, mipmapping, and more.
I first created it just as a learning exercise and right now it's still pretty useless but my ultimate goal is to create an engine capable of rendering a large number of objects at real-time speeds without sacrificing a lot of visual quality.
Right now the engine is designed to run only on the CPU and the code is written for readability rather than speed, so it's not particularly fast. The next goal is to write OpenCL kernels based on the prototype CPU code which will handle all of the parallel processing and make it run at real-time speeds.
This paper discusses the rationale of the methods used:
Real-Time Ray Tracing Methodology
The current source code can be found on GitHub:
Ray-Tracer CPU Prototype
Pray Engine is based on the Chili DirectX Framework: