Table of Contents
Fetching ...

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.

Concurrent Binary Trees for Large-Scale Game Components

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.
Paper Structure (27 sections, 6 equations, 8 figures, 3 tables, 9 algorithms)

This paper contains 27 sections, 6 equations, 8 figures, 3 tables, 9 algorithms.

Figures (8)

  • Figure 1: Halfedge mesh representation used for our bisection based subdivision scheme. The blue and green halfedges are highlighted as illustrative examples of a regular and border halfedge, respectively.
  • Figure 2: Overview of our triangulation method.
  • Figure 3: Refinement over the compatibility chain of bisector $b_{14}^1$ (highlighted in orange).
  • Figure 4: The CBT's (left) data-structure and (right) contiguous memory layout within an array.
  • Figure 5: GPU update loop for our adaptive triangulation algorithm. Memory, CPU commands and GPU kernels are respectively shown in green, gray and red. Each kernel is implicitely followed by a GPU memory barrier.
  • ...and 3 more figures