NVIDIA(R) GVDB VOXELS Release 1.1
NVIDIA GVDB is a new library and SDK for compute, simulation and rendering of sparse volumetric data. Details on the GVDB technology can be found at: http://developer.nvidia.com/gvdb
3/25/2018, GVDB Voxels 1.1
- Dynamic topology on GPU
- Multiple contexts and GVDB objects
- Multiple samples with OptiX support
- Improved compute and raytrace performance
- Render from any channel
- Resampling functions
- Grid transforms for rendering
- All limitations in Programming Guide 1.0 addressed
9/19/2017, GVDB Voxels, Incremental fix
- Fixed Depth map integrated raycasting
- Fixed Resample function
- New gDepthMap sample, shows how to render OpenGL and GVDB volumes with proper depth integration.
- New gResample sample, shows how to load a dense RAW file into GVDB as sparse data.
- RAW data courtesy of the Visible Human Project, National Library of Medicine, National Institutes of Health, USA
5/1/2017, GVDB Voxels, Release 1.0 Created: Rama Hoetzlein, 2017
- First public release
- Open source (BSD 3-clause)
- Samples: g3DPrint, gFluidSurface, gInteractiveGL, gInteractiveOptix, gJetsonTX, gRenderKernel, gRenderToFile, gSprayDeposit
- Builds on Windows and Linux
- Runs on Quadro, GeForce, JetsonTX1/2, and Tegra/GRID
NVIDIA Kepler generation or later GPU Windows 7, 8, 10 64-bit Microsoft Visual Studio 2010 or higher CUDA Toolkit 6.5 or higher (Toolkit 8.0 recommended) CMake-GUI 2.7 or later OptiX 3.9.0 or later (InteractivOptix sample only, download from NVIDIA)
GVDB is released as a library with samples. The library and each sample is built separately, using cmake.
- GVDB VOXELS Library
- Code Samples
See the included GVDB_Samples_Description.pdf for detailed sample descriptions.
- gRenderToFile - Renders a sparse volume to a file using GVDB
- gRenderToKernel - Renders a sparse volume using a custom user-kernel
- gInteractiveGL - Interactive rendering of a volume using GVDB and OpenGL
- gInteractiveOptiX - Interactive rendering of a volume and a polygonal model, with poly-to-poly and poly-to-voxel interactions.
- g3DPrint - Demonstrates generating cross section slices for 3D printing from a polygonal model
- gSprayDeposit - Demostrates simulated spray deposition onto a 3D part
- gFluidSurface - Demostrates a dynamic simulation with surface rendering by GVDB (also point clouds from CPU)
- gJetsonTX - Simple 3D Printing Driver for the JetsonTX1/2 with volume slicing on Tegra chip
- GVDB VBX File Specfication
- GVDB Sample Descriptions
- GVDB Programming Guide
All interactive samples use the following user input interface Camera rotation -> move mouse Change orientation -> left mouse click Zoom -> right mouse click Panning -> hold middle button A few samples have on-screen GUIs with features that can be toggled by clicking on them.
- Install cmake-gui 2.7 or later
- Install CUDA Toolkit 8.0
- Install OptiX 3.9.0 or later (for gInteractiveOptix sample)
- Unzip the package or clone the git repository
- Run cmake-gui.
- Where is source code: /gvdb/source/gvdb_library
- Where to build bins: /gvdb/build/gvdb_library
- Click Configure to prepare gvdb_library
- Click Generate
- Open /gvdb/build/gvdb_library/gvdb_library.sln in VS2010/2013
- Build the solution in Debug or Release mode.
- For whichever mode, you must build later samples with same build type.
- The gvdb_library must be built prior to running cmake for any sample.
- Run cmake-gui.
- Where is source code: /gvdb/source/g3DPrint
- Where to build bins: /gvdb/build/g3DPrint
- Click Configure to prepare g3DPrint
- You should see that cmake locates the GVDB Library paths automatically
- Specify any paths that cmake indicated are needed
- Click Generate
- Open /gvdb/build/g3DPrint/g3DPrint.sln in VS2010/2013
- Build the solution
- Run the sample! Select g3DPrint as the start up project. Click run/debug
- Install CMake
- sudo apt-get install cmake-qt-gui
- Install the CUDA Toolkit 7.5 or later
- sudo ./cuda_7.5.18_linux.run
- Must be done first, before you install NVIDIA drivers
- Install the NVIDIA R367 drivers or later
- These can be downloaded from the NVIDIA website
- Remove the symoblic libGL, which may incorrectly point to the libGL mesa driver.
- sudo rm -rf /usr/lib/x86_64-linux-gnu/libGL.so
- Link the libGL to the NVIDIA driver
- sudo ln -s /usr/lib/nvidia-367/libGL.so /usr/lib/x86_64-linux-gnu/libGL.so
- Install additional developer dependencies.
- sudo apt-get install libxinerama-dev
- sudo apt-get install libxrandr-dev
- sudo apt-get install libxcursor-dev
- sudo apt-get install libxi-dev
- sudo apt-get install libx11-dev
- OptiX is distributed as a .sh file, which extracts to the current dir.
- Create a directory for optix in /usr/lib and move the package there before extracting. - $ sudo mkdir /usr/lib/optix
- $ sudo mv NVIDIA-OptiX-SDK-4.0.1-linux64.sh /usr/lib/optix
- $ cd /usr/lib/optix
- $ sudo ./NVIDIA-OptiX-SDK-4.0.1.-linux64.sh
- Open .bashrc. For example: $ emacs ~/.bashrc
- Add the following at the end: - export LD_LIBRARY_PATH=/usr/local/gvdb/lib:/usr/lib/optix/lib64 - The first path should be the location of libgvdb.so (once installed) - The second path should be the location of optix.so
- Source the bash (re-run it) - $ source ~/.bashrc
- Unpackage the source tar.gz file
- mkdir ~/codes/build/gvdb_library # make a folder for the build
- cmake-gui # run cmake-gui with the following settings:
- source: ~/codes/source/gvdb_library
- build: ~/codes/build/gvdb_library
- Click Configure, and the nGenerate
- cd ~/codes/build/gvdb_library
- sudo make
- sudo make install # default install is to /usr/local/gvdb
- Unpackage the source tar.gz file
- mkdir ~/codes/build/g3DPrint # make a folder for the build
- cmake-gui # run cmake-gui with the following settings: - source: ~/codes/source/g3DPrint - build: ~/codes/build/g3DPrint - Click Configure, and the nGenerate - Note: If GVDB is not found, set the GVDB_ROOT_DIR to /usr/local/gvdb - or your preferred gvdb install location from step 4. - cd ~/codes/build/g3DPrint - make - make install # remember to do 'make install' to get all files
- Run the sample! ./g3DPrint
========================== BSD 3-clause. Please refer to License.txt
2017 (c) NVIDIA