What is DirectTrace?
DirectTrace is a full Graphics library that is based on a very innovative algorithm for Ray-Tracing that overcomes some of the usual hurdles associated to Ray-Tracing. It also provides many functionalities needed to create 3D ray-traced images. This includes automatic allocation of objects like scene, images, materials, and ray buffers. Shaders are availaible either as X86 function pointers and/or OpenCL code when using OpenCL acceleration. Texturing will also be supported (soon) by the OpenCL version of the DirectTrace driver.
DirectTrace innovates by including the first efficient ray-tracing algorithm that does not use a spatial subdivision data structure. This allows faster manipulation of soon-to-be-ray-traced scenes, introduces some specific algorithmic capabilities, and simplifies some of the ray-tracing graphics pipeline overall. As such, the technique is well-suited to interactive and real-time environments. The algorithm does however impose some rethinking of the Ray-Tracing flow, requiring large batches of rays to be considered for tracing. DirectTrace is a result of a research effort made at Swansea University in Ray-Tracing, and all this has been possible thanks to the strong support of the UK EPSRC. The video below shows some old results obtained from an early implementation of the DirectTrace Ray-Tracing algorithm.
It is believed that DirectTrace has the potential to become the first real-time global illumination API running on a regular PC. Unlike many other Ray-Tracing technologies that Duke-Nukem'ed for ever, this API is already delivering!
What is Ray-Tracing?
The term Ray-Tracing includes techniques and algorithms dedicated to intersecting 3D primitives (e.g., triangles) with rays traversing a 3D space. The technique allows high-quality simulations of light paths inside a scene to create highly realistic 3D images. This is something that is very difficult to achieve with APIs like OpenGL or Direct3D based on rasterization algorithms. The downside of Ray-Tracing is that it is however computationally expensive and there is no strong standards in that area.
Is DirectTrace OpenSource?
Not Really. The specifications of the language are "open to discussion", but the technology's source code won't be available just yet. Currently, the website provides an X86-64 bits version of the DirectTrace driver for use under the licence's terms and conditions. A faster OpenCL version has also been developed, but won't be made public at this point.
DirectTrace may become Open Source at some point, but our main priority is to make the project substainable, as agreed with the original funding body. The project is clearly under-funded at the moment and we estimate that it will take 1.5 man-year to allow real-time global illumination, and approximately the same amount of time to improve the documentation and the code itself. If you want to help the project, please have a look at the support page.
DirectTrace Main Features
- Advanced, fast Ray-Tracing algorithms.
- Designed for interactive renderings of dynamic scenes.
- High productivity OpenGL-alike Ray-Tracing API.
- X86 and/or OpenCL shaders with GPU acceleration.
- Supports Intel & AMD (X86), ATI and NVIDIA platforms (OpenCL).
- 32 bits and 64 bits Windows versions.