nvpro-samples/vk_gaussian_splatting

Advanced viewer implementing several rendering methods for 3D gaussians using Vulkan API

What it solves

This project provides a high-performance real-time viewer for 3D Gaussian Splatting (3DGS) models. It addresses the need for a testbed to compare different visualization techniques—such as rasterization and ray tracing—to determine the best trade-offs between rendering speed, visual quality, and implementation complexity using the Vulkan API.

How it works

The application acts as a viewer rather than a reconstruction tool; it does not train or generate models. It implements several distinct rendering pipelines to visualize splats:

  • Rasterization: Fast traditional rendering of Gaussian particles.
  • Ray Tracing: High-fidelity visualization using ray-particle intersections.
  • Hybrid: A combination of both approaches.
  • Specialized Techniques: Includes implementations of the Unscented Transform (3DGUT), stochastic transparency, and billboard ray tracing.

It also integrates advanced graphics features like GGX PBR materials, DLSS for upscaling, and physically-based lighting (IBL environment maps and path tracing).

Who it’s for

  • Graphics Developers: Those looking to implement or experiment with 3DGS rendering in Vulkan.
  • Researchers: People comparing the performance and quality of different 3DGS visualization algorithms.
  • End Users: Anyone who needs a fast, day-to-day viewer for existing 3DGS .ply models.

Highlights

  • Multiple Rendering Paths: Supports rasterization, ray tracing, and hybrid pipelines.
  • Advanced Lighting: Features physically-based rendering (PBR) with GGX materials and IBL environment maps.
  • Performance Tools: Includes DLSS support and a dedicated billboard benchmark suite.
  • Cross-Platform: Compatible with Windows and Linux on NVIDIA or Vulkan 1.4 enabled GPUs.

Related

  • Project
  • Project
  • Project
  • Project