Skip to content

Web-based WebGPU volume renderer in C++ crosscompiled to WebAssembly using Emscripten

License

Notifications You must be signed in to change notification settings

nanovis/VolumetricWebRenderer

Repository files navigation

WebRenderer

Volume Rendering project combining WebGPU, Dawn, ImGui and Emscripten. It can be built using VS (for desktop) or using the make file (for web deployment).

Inspired by (and derived from) the following examples

How to build

How to use

  • left mouse button: camera rotation
  • right mouse button: changes clipping plane offset (hold right mouse button and move along y direction)
  • middle mouse button: camera panning
  • mouse scrolling: zoom in/out
  • key 0: disable clipping
  • key 1: clipping x-axis
  • key 2: clipping y-axis
  • key 3: clipping z-axis
  • key 4: clipping view-aligned
  • key F: toggles the clipping plane into fullscreen mode
  • key left-CTRL: Holding the left CTRL key activates the annotation mode, in which you can add or remove annotations. The annotations work only in combination with the clipping plane. You can use the following commands:
    • left mouse button: uses a spherical brush to add annotations to the selected volume mask
    • right mouse button: uses a spherical brush to remove annotations of the selected volume mask

The hotkeys can be changed by loading a hotkey mapping file.

Known issues:

  • device lost when resizing window in the desktop mode
  • web version currently works only when compiled with depth attachment disabled. This is due to an emscripten bug: emscripten-core/emscripten#16471

About

Web-based WebGPU volume renderer in C++ crosscompiled to WebAssembly using Emscripten

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published