Skip to content

emcfarlane/webgpu-nanovdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebGPU NanoVDB

A WGSL shader library for accessing NanoVDB sparse volumetric data in WebGPU compute shaders.

WebGPU NanoVDB

Live Demo →

Overview

This repository provides pnanovdb.wgsl - a port of the PNanoVDB C API to WGSL for use in WebGPU compute shaders.

Usage

// Include the library in your compute shader
// (concatenate pnanovdb.wgsl with your shader code)

@group(0) @binding(2) var<storage> nanovdb_buffer: array<u32>;

@compute @workgroup_size(8, 8)
fn main() {
    // Create buffer handle
    let buf = pnanovdb_buf_t(0, arrayLength(&nanovdb_buffer));
    
    // Access grid data
    let grid = pnanovdb_grid_handle_t(0u);
    let tree = pnanovdb_grid_get_tree(grid);
    let root = pnanovdb_tree_get_root(buf, tree);
    
    // Sample voxel data
    var accessor: pnanovdb_readaccessor_t;
    pnanovdb_readaccessor_init(&accessor, root);
    let value = pnanovdb_readaccessor_get_float(buf, &accessor, coord);
}

Related Projects

  • OpenVDB - Sparse volume data structure library
  • NanoVDB - GPU-optimized sparse volumes

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Built on technologies from the Academy Software Foundation.

About

NanoVDB translated to WGSL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages