NVIDIA? GVDB Voxels
NVIDIA GVDB Voxels is a new framework for simulation, compute and rendering of sparse voxels on the GPU.
*NEW* GVDB Voxels 1.1 Release now available - Click here for GVDB at GTC 2018
Key Features
- Support for high performance on NVIDIA Pascal architecture GPUs
- Support for embedded systems on NVIDIA Jetson TK1, TX1 and TX2
- Compute and simulation with CUDA on sparse volumes
- High quality rendering via integration with NVIDIA OptiX
Join the NVIDIA Developer Program
Get access to the latest software releases and tools and receive notifications and invites to join special developer events, early access programs and educational webinars. The program is free-to-join and open to all developers.
Download (including all samples)
NVIDIA GVDB Voxels was released at GPU Technology Conference in 2017 and updated to version 1.1 at GTC 2018.
GVDB recommended configuration is Visual Studio 2015, with CUDA 9.1, OpenVDB 5.0.0 and OptiX 5. CUDA is required. CUDA 8 deos not support VS2017. CUDA 9 may have known issues with VS 2017 15.4 and 15.5 OpenVDB is only required for gImportVDB sample. OpenVDB 4 and 5 require C++14, and cannot be used with VS2012.
Get GVDB Voxels 1.1 via GitHub
(Windows x64 and Linux)
Windows*Note: Win Installer is updated on next release cycle. Minor bug fixes will be updated via Github first.
Documentation
- GVDB Release Notes v1.1
- GVDB Programming Guide v1.1
- GVDB Samples Descriptions v1.1
GVDB Voxels SDK Samples:
GVDB Voxels Samples PageDeveloper Forums
Our forum community is where Developers can ask questions, share experiences and participate in discussions with NVIDIA and other experts in the field.
GVDB Voxels Forum
Operating System | 64-bit Windows or Linux |
Dependencies | Kepler or newer generation GPUs CUDA Toolkit 8.0 or higher CUDPP Library (included) |
Optional APIs | OptiX 3.9.0 or higher OpenVDB 4.0.0 |
NVIDIA GVDB is a GPU-based framework for VBD data structures inspired by the award-winning software library OpenVDB used for motion picture visual effects and modelling.
Volume rendering of a water surface in NVIDIA GVDB with data from How to Train Your Dragon 2. Data property of DreamWorks Animation.
To create realistic renderings of liquids, smoke, clouds and fire effects with a high level of detail, visual effects and animation studios make use of volumetric data consisting of trillions of small voxels - pixel elements in 3D. Voxels allows effects artists to simulate and manipulate large visual effects while keeping minute details. Although easier to simulate than polygons the classic pitfalls of volumetric data are both huge file sizes and demanding computations. In this field the Academy Award winning OpenVDB library was created by Dr. Ken Museth to help reduce the impact of these limitations and provide tools for software rendering and operations for management of voxel data for visual effects.
To promote open source GPU volume rendering and compute, NVIDIA researcher Dr. Rama Hoetzlein developed GVDB to take advantage of GPU cores which are ideally suited for parallel processing huge numbers of voxels. The GVDB data structure allows sparse data to reside entirely on the GPU. The new GVDB Library also integrates with NVIDIA OptiX for ray-traced renderings to deliver high quality, multi-bounce illumination running 10x-30x faster than CPU based voxel rendering.
GVDB runs 10x-30x faster than CPU-based rendering
GPU-accelerated tools in GVDB provide data manipulation and compute tasks such as full volume smoothing, hole filling and user-defined operations. A disk format compatible with the OpenVDB layout further improves load and save times for more efficient I/O.
Image Property of DreamWorks Animation.
GVDB is a new rendering engine for VDB data, uniquely suited for NVIDIA GPUs and perfectly complements the CPU-based OpenVDB standard while improving on performance. I am excited to take part in the future adoption of GVDB in the open-source community for visual FX.
Dr. Ken Museth, Principal developer of OpenVDB
Key Features for Motion Pictures
- GPU-based framework for VDB data
- Fast disk format compatible with OpenVDB layout improves load and save times for efficient I/O operations
- Real-time interactive pre-visualization
- Live interaction with multiple-bounce GI scattering in OptiX
- Raytracing 10x-30x faster than CPU rendering
- GPU-accelerated tools providing manipulation and correction operations such as full volume smoothing and hole filling
- Multiple channels to support simulation on GVDB grids
- Operations for particles insertion and lookup for FLIP/PIC methods
GVDB In Action
NVIDIA GVDB compute operations enable full volume smoothing and hole filling.
Interactive materials (right) allow artists to compare visual styles in real time.
To explore the performance and quality of GPU-based GVDB, NVIDIA worked with the principal developer of OpenVDB to experiment with production data from How to Train Your Dragon 2, a feature film from DreamWorks Animation. We brought a large, production quality, 5.5 GB voxel dataset (33003) from a key moment in the film into NVIDIA GVDB and stored the entire volume with topology on a single NVIDIA Quadro M6000 GPU. Data smoothing was performed on the GPU using CUDA in NVIDIA GVDB. With the NVIDIA(R) OptiX integration in GVDB, real-time interaction enabled pre-visualization of lighting and materials. A high quality animation was then rendered with interactive raytracing, scattering and soft shadows with 96 rays/frame at 5 seconds per frame.
Interactive generation of Voronoi foam for infilling using NVIDIA GVDB Voxels. Voronoi structures in this image are generated at 200 milliseconds for a 10243 effective volume. Rendering is done interactively with OptiX integration for high quality, realtime part previsualization.
NVIDIA GVDB Voxels is ideally suited for 3D Printing design, prototyping and embedded applications where both performance and memory footprint are critical. Voxels enable a nextgeneration approach to the 3D Printing workflow as they represent complex, connected microstructures and heterogeneous materials more easily than polygons. Supporting very high resolution volumes with massive parallelism on GPUs, the sparse data structure of NVIDIA GVDB Voxels allows for geometric operations, simulation and rendering of complex models with fine detail. GVDB Voxels is ideally suited as core representation for 3D Printing Design applications, Generative Design,Process Engineering, Materials Simulation or print PreVisualization.
Key Features for 3D Printing
- Sparse storage allows for high-resolution models
- Runs on embedded hardware such as the Jetson TK1, TX1 and TX2
- Open source, so developers can adopt and modify to suit their needs
- Compute operations allow for process customization, including simulation
- Built-in high quality rendering supports raytraced pre-visualization
- GVDB SDK includes a g3DPrint sample which demonstrates slicing
Process Engineering with HP Labs
NVIDIA worked closely with HP Labs in 2017 to explore the potential for Process Engineering on GPUs. Generative design takes the approach of simulating the stresses, strains and energy on a part to reconfigure the part itself with user guidance. Read Blog PostDr. Jun Zeng , Principal Scientist at HP Labs, was interested in solving novel problems in Process Engineering , which considers the generation and design of complex microstructures for infilling after the part shape is complete. Bringing NVIDIA GVDB Voxels to the Pascal GP100 was an ideally match for this exploration since the microstructures are generated at a finer detail than the part, requiring significantly more memory and computing power.
Interactive in-filling for process engineering. The finished part has a specific shape (left), while the internal Voronoi foam can vary in cell density (right). Generation of new variations for in-filling is interactive on Pascal GPUs. Pre-visualized rendering with multiple-materials for surface and internal styling occurs at the same time with real-time feedback.
GVDB Voxels generates in-filling structures interactively
With NVIDIA GVDB Voxels we were able to generate variations in the infilling structures interactively , in response to simulated part strains and user manipulation. Generated structures respond dynamically to desired changes in foam density. NVIDIA GVDB Voxels achieves a level of responsiveness with fine structures that would be difficult to achieve using polygons alone. The output data can be directly used in slicebased printing.
GVDB Voxel Raytracing compared to printed part. Half of the model is printed without a surface to expose the voronoi interior. Note the part is only 1?” high so depthoffield effects are visible. Deep subsurface structures are properly rendered with GVDB Voxels, showing voronoi even beneath surface features.
To generate adaptive infilling, HP Labs computed a strain simulation using their Material Capture software to determine the areas of the part with greater strain energy. With forces applied to the wingtips, greater density is needed in the lower back (right image). An adaptive voronoi foam was then generated to match that density requirement (above, left). NVIDIA GVDB Voxels also produced the interactive render previews and the crosssections for printing. The result is a method of Process Engineering where a given printed part uses selective, adaptive infilling to reduced weight while meeting the force constraints (above, right).
VOX3: A Voxel-Based 3D Printer with the Jetson TX2
The VOX3 is a DLP/SLA 3D Printer with an entirely voxel-based workflow running NVIDIA GVDB Voxels on the Jetson TX2.
The Lead Architect of NVIDIA GVDB Voxels, Dr. Rama Hoetzlein , developed an entirely voxel-based 3D Printer to prototype the combination of novel NVIDIA hardware and software:
"By running GVDB Voxels on the Jetson TX2, we are able to develop embedded devices with advanced processing atthedevice. VOX3 is an experimental prototype for a liquid resin DLP/SLA 3D Printer with an entirely voxel-based workflow. With dual video outputs, the Jetson TX2 runs both the slice projector and a preview monitor. The TX2’s 8GB of memory, combined with sparse storage of GVDB software, allows large models to reside entirely onboard. The 256 cuda cores of the Jetson TX2 enable compute and simulation with GVDB. This means we can send, process, infill and slice volumetric data directly on the printer without any intermediate polygonal representation.
Dr. Rama Hoetzlein, NVIDIA GVDB Voxels Lead Architect
NVIDIA Jetson TX2 Developer Kit running NVIDIA GVDB Voxels
Fields that rely on Scientific Visualization, such as Medicine, Biology, Physics and Astronomy, continue to drive the need for in-situ, on demand, high performance data visualization. A simulations scale, or data collection grows, visualization tools for volumes requires more efficient methods. NVIDIA GVDB Voxels maintains a sparse representation to support large volumes in GPU-memory.
Key Features for Scientific Visualization
- Data reformatting and import is simplified by separating bricks from topology
- The .VBX format is an efficient, GPU-friendly file format for voxel data
- Compute operations over entire volumes using CUDA kernels, allowing GPU-based post-processing of data
- Rendering of volumes using different styles, including volumetric sampling, raytracing, iso-surfaces, and level set rendering
Case Study: Chemical Spray Deposition
Figure 1. Chemical Spray Deposition is a process in materials science whereby a part is coated with a thin film by spraying it with molecules. Molecules are emitted from a particle source.
An interesting problem in material science is the study of Chemical Spray Deposition, a process in which parts are coated with a thin film of molecules. The goal is often to create a uniform coating, yet this sensitive process is subject to several challenges (see Figure 1). Overhang is a common problem in which particles adhere more to corners that are closer, or oriented toward, the source. Occlusion occurs in areas of the part that are not in line-of-sight with the source. These issues depend on both the geometry of the particle source and the part.
Scientific simulation is a valuable tool for predicting material results. We created a simulation for Chemical Spray Deposition with NVIDIA GVDB Voxels that emulates this process. A high resolution model, represented with sparse voxels, allows us to visualize the build-up of the thin film. This simulation is able to reproduce the effects of both overhand and occlusion.
NVIDIA GVDB Voxels simulates the particles as a bundle of rays cast semi-randomly from the source. These rays hit and then adhere to the part to build up a surface. GVDB Voxels efficiently manages the computational aspects of raytracing, part modeling, and geometry so that scientists can focus on the essential aspects of simulation.
The Chemical Spray Deposition is included as a sample with
the NVIDIA GVDB Voxels SDK as open source software.
Additional Resources
- Blog - How GPUs Can Kick 3D Printing Industry Into High Gear
- GVDB Reference Demo Video
- GVDB at SIGGRAPH 2016: Introducing GVDB Sparse Volumes Presentation
- GVDB at SIGGRAPH 2016: Technical Presentation
- GVDB at HPG 2016: Raytracing Sparse Voxel Database Structures on the GPU
- GVDB at GTC 2016: Raytracing Scientific Data in NVIDIA OptiX with GVDB Presentation