Concurrent Binary Trees for Large-Scale Game Components
Anis Benyoub, Jonathan Dupuy
TL;DR
The paper addresses the challenge of generating adaptive triangulations for very large-scale game components on GPUs by introducing a concurrent binary tree (CBT) that manages a per-halfedge subdivision primitive called a bisector. It extends the CBT to operate as a memory pool and scheduler, decoupling subdivision depth from CBT depth and enabling deep refinements without wasting memory. The approach combines ROAM-like progressive refinement with a halfedge-based initialization to produce conforming triangulations entirely on the GPU, achieving planetary-scale detail with update times under 0.2 ms and modest memory (around 7 MiB) on mid-range GPUs. This enables real-time, high-fidelity rendering of terrains, oceans, and planetary geometry for large-scale game components, improving flexibility, scalability, and frame-time stability. The work demonstrates practical impact by rendering Earth- and Moon-scale scenes with centimetric detail using a single representation and GPU-resident data structures.
Abstract
A concurrent binary tree (CBT) is a GPU-friendly data-structure suitable for the generation of bisection based terrain tessellations, i.e., adaptive triangulations over square domains. In this paper, we expand the benefits of this data-structure in two respects. First, we show how to bring bisection based tessellations to arbitrary polygon meshes rather than just squares. Our approach consists of mapping a triangular subdivision primitive, which we refer to as a bisector, to each halfedge of the input mesh. These bisectors can then be subdivided adaptively to produce conforming triangulations solely based on halfedge operators. Second, we alleviate a limitation that restricted the triangulations to low subdivision levels. We do so by using the CBT as a memory pool manager rather than an implicit encoding of the triangulation as done originally. By using a CBT in this way, we concurrently allocate and/or release bisectors during adaptive subdivision using shared GPU memory. We demonstrate the benefits of our improvements by rendering planetary scale geometry out of very coarse meshes. Performance-wise, our triangulation method evaluates in less than 0.2ms on console-level hardware.
