NVIDIA GVDB Voxels is a new framework for simulation, compute and rendering of sparse voxels on the GPU.
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.
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
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.
Dr. 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.
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).
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.
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.
NVIDIA GVDB Voxels was released as an SDK with samples at the GPU Technology Conference in 2017 with an open source license (BSD 3-clause) enabling developers the greatest flexibility in creating novel applications for NVIDIA CUDA-based GPUs.
(Windows x64 and Linux)Get GVDB Voxels via Win installer
*Note: Win Installer is updated on next release cycle. Minor bug fixes will be updated via Github first.
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 7.0 or higher
|Optional APIs||OptiX 3.9 or higher
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.