Technical Projects

Scroll ↓

Virtualised Geometry

GPU-driven hierarchical mesh rendering in Unity Engine

Implementation

The system combines an editor-side mesh preprocessing pipeline with GPU-based runtime processing. Cluster metadata is prepared ahead of time, while compute shaders handle runtime cluster selection and the renderer uses indirect drawing to submit the selected geometry.

Key components

  • Mesh preprocessing and cluster generation

  • Hierarchical cluster representation

  • GPU-driven visibility and level-of-detail selection

  • Indirect rendering in Unity

Challenges & Future Work

One of the main challenges was balancing cluster granularity, hierarchy complexity and rendering overhead. While the system demonstrates hierarchical geometry selection and GPU-driven rendering, further optimisation is needed to reduce GPU processing overhead and improve visual consistency between levels of detail.

Future work could explore more effective cluster simplification, tessellation based subdivision for further detail and more efficient GPU work scheduling.

I developed a GPU-driven rendering system that divides meshes into hierarchical clusters, enabling geometry to be selected based on visibility and level of detail at runtime.

The project explores how hierarchical mesh representations and GPU-driven rendering can reduce the amount of geometry processed and drawn, while maintaining visual detail where it matters.

Unity · C# · HLSL

Hierarchical Clustering and GPU Driven Culling

To prepare meshes for GPU-driven rendering, I developed an editor-side preprocessing pipeline that partitions imported meshes into smaller, independently managed clusters.

These clusters form a hierarchy, allowing the renderer to work with geometry at different levels of detail rather than treating the original mesh as a single object.

At runtime, the renderer evaluates clusters and selects appropriate geometry for rendering based on visibility and distance. This allows the system to avoid drawing clusters that are unnecessary for the current view and to select different hierarchy levels as the camera moves.

Next
Next

Games