Skip to content

A fast and high quality GPU BVH builder implementing H-PLOC

License

Notifications You must be signed in to change notification settings

StokastX/NexusBVH

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nexus BVH

teaser9

This project was developed as part of the GPU Computing course at Ensimag. The full report can be found here.

NexusBVH is a fast and high-quality GPU BVH builder written in C++ and CUDA. It implements H-PLOC [Benthin et al. 2024] algorithm, focusing on high-performance and high-quality hierarchy generation.

BVH Construction Benchmark

All times are in milliseconds and represent kernel execution times measured on the CPU side. Benchmarked on a Ryzen 7 5700X, RTX 3070 8 Go.

BVH2 refers to the H-PLOC kernel with a search radius of 8. Radix sort is performed using 32-bit Morton codes. When using 64-bit Morton codes, sorting time is approximately 3x slower.

Scene (Triangles) Scene Bounds Morton Codes Radix Sort BVH2 Total
Sponza (0.3M) 0.06 0.04 0.22 0.37 0.68
Buddha (1.1M) 0.22 0.14 0.37 1.05 1.78
Hairball (2.9M) 0.55 0.31 0.89 2.01 3.86
Bistro (3.8M) 0.59 0.31 1.02 2.66 4.58
Powerplant (12.7M) 2.52 1.31 3.59 8.85 16.27
Lucy (28.1M) 5.78 3.07 7.98 22.2 39.03

Prerequisites

Build

  • Clone the repository

    git clone https://github.com/StokastX/NexusBVH
  • Run setup.bat to automatically generate a Visual Studio solution in the build/ directory.

    Alternatively, you can generate the solution via cmake:

    mkdir build
    cd build
    cmake ..
  • Open the Visual Studio solution and build the project

Resources

About

A fast and high quality GPU BVH builder implementing H-PLOC

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published