TraverseResearchWork with us
Menu

Traverse Research

Acceleration structures

BVH construction, refit and traversal quality, compared strategy by strategy in our own playground and taken through to a driver integration.

Breda AS Playground: builder settings, live BVH statistics, a GPU frame breakdown and an intersection heatmap of where traversal work lands.
Breda AS Playground: builder settings, live BVH statistics, a GPU frame breakdown and an intersection heatmap of where traversal work lands.

The structure behind the rays

An acceleration structure determines which geometry a ray visits and how much work the traversal performs. Its construction cost, memory requirements and ability to handle changing scenes are part of the frame budget too.

Traverse’s research covers both the algorithm and its implementation environment. A builder that performs well in isolation still has to fit the driver, synchronisation model, scratch-memory budget and workload of an application.

A playground for builder strategies

We built the Breda AS Playground to stop comparing builders on paper. Builder algorithm, rebraiding, sorting and QBVH conversion are all switchable while the scene is running, so PLOC++ two-step against another builder, or Onesweep against a different sort, is a change you make and watch rather than a result you rebuild for. Extended Morton codes, fused instance nodes and the agglomerative treelet size and reorder iterations are exposed the same way.

Each choice is answered immediately in three places. BVH statistics report the BLAS and TLAS the settings produced, down to inner and leaf node counts, the QBVH conversion and SAH cost. The frame breakdown gives GPU timings per command buffer, so a build that looks good on paper shows what it actually costs to produce. Tracing statistics histogram the ray-box and ray-triangle tests, with the average, the most common count and how many pixels ran past the end of the histogram.

The viewport closes the loop. Rendering primary rays as an intersection heatmap shows where the traversal work sits, not just how much of it there is, which is usually what tells you whether a structure is wrong in a way the totals hide.

That combination is the point. A builder that lowers SAH cost can still traverse worse, and a cheaper build can simply move the cost elsewhere in the frame. Seeing the structure, the build time and the traversal work against one scene is what makes the trade-off decidable.

Algorithms and implementation

Our driver programme investigated PLOC++ builders, refit, batched builds, treelet reordering and rebraiding. Sorting experiments compared merge sort, a vendor parallel sort and Onesweep. Research also covered the integration and profiling required to assess the result in games.

The work progressed from a clean-slate Breda prototype to TLAS-builder integration, including application-level correctness and bottleneck investigations. Read the project account.

A few useful answers.

Do you work on construction and traversal together?

Yes. A cheaper build can produce a structure that costs more to traverse. Both sides of the workload matter.

How do you compare one builder against another?

In our AS Playground, which switches builder, rebraiding, sorting and conversion strategy at runtime and reports the structure, the build cost and the traversal work for each.

Can the investigation include driver integration?

Yes. One programme went from a prototype in Breda to a TLAS builder integrated into driver code.

Are the results tied to a specific workload?

Yes. Algorithms are evaluated with their scenes, update patterns and target hardware in view.

Traverse Research + Traverse Games

Let’s turn a good question into working software.

Start a conversation