DirectTrace  0.9
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Documentation of the DirectTrace 3D RayTracing API
Benjamin Mora


Welcome to the DirectTrace library!
This library allows the use of ray-tracing in interactive/real-time environments and removes the burden of programming delicate data structures and algorithms for computing spatial intersections and shading.
The API uses brand new algorithms for ray-tracing that work at a faster pace than previous algorithms achieving the same goal, especially when processing some dynamic content.
The full version of DirectTrace can be used for real-time purpose and can be faster than OpenGL for large, dynamic scene applications! This API is also improving as finance and time permit. Check the Compatibility and Features section to see which tools are implemented and available.
DTScene, DTImage, DTTexture, and DTRayBuffer are the main classes available from the library. See these classes for more information and examples on how to use them.

Why a new API?

There are many reasons why this API has seen the light. Mainly, the lack of interactive solutions for ray-tracing combined with radically new algorithms (from EPSRC sponsored research) to perform 3D ray-tracing, has lead to the DirectTrace library. In particular, this library brings to ray-tracing developers a number of features that could not be found elsewhere, in either commercial or free ray-tracing distributions. The use of a very new ray-tracing algorithm allows a tremondous reduction for the costs related to coding & maintenance in such an API.

Special Features

  • Based on a very innovative concept for ray-tracing.
  • Advanced, extremely fast algorithms.
  • Designed for small interactive environments as well as large processing jobs.
  • Flexible, open (to suggestions) specifications.
  • Low Level C/C++ API without unneeded features or limitations.
  • Support for shaders, either CPU X86 or OpenCL based (e.g., ATI & NVIDIA graphics cards).
  • Simple programming concepts.
  • Scene description OpenGL alike, with simplified specifications and resource management.
  • Strong approach when the construction of a spatial subdivision structure is a problem. Especially, superior performances can be obtained in cases like handling dynamic scenes, or having tremondous amounts of triangles (can be billions) to process.

Tutorials, Descriptions and More


0.9: 01/09/2012. Added OpenCL acceleration for intersection, & texturing! Some bugs solved, with others possibly introduced! Multithreading support added. Primary ray intersections are computed at full speed (X86).

0.8: 01/06/2011. Library stable (enough) and ready for distribution. Documentation is still to be improved!

0.7: 01/06/2011. Many Bugs corrected.

0.48: OpenCL support for may operations. Doc improved.

0.46: Started coding OpenCL acceleration.

0.45: Support for heterogeneous primitives. Some changes in the dll interface, specifications and Intersector function. Better support for material and primitive attribs.

0.42: Removal of stacks, Switch to X86 and new Interface.

0.41: More Improvements in the documentation and specifications.

0.4: Minor Improvements in the documentation and specifications.

ToDo List

Mutithreading Further improve support for implicit multithreading.

Texturing Test texture support.

Specifications Finalize for version 1.0. Removing deprecated functions out of DirectTraceAPI.h and .cpp files.

Documentation Not complete at the moment. If you are a programmer, you may want to have a look at the SDK examples first.