Displacement Mapping on the GPU: State of the Art

January 14th, 2008

This paper reviews the latest developments of displacement mapping algorithms implemented on the vertex, geometry, and fragment shaders of graphics cards. Displacement mapping algorithms are classified as per-vertex and per-pixel methods. Per-pixel approaches are further categorized as safe algorithms that aim at correct solutions in all cases, to unsafe techniques that may fail in extreme cases but are usually much faster than safe algorithms, and to combined methods that exploit the robustness of safe and the speed of unsafe techniques. The paper discusses the possible roles of vertex, geometry, and fragment shaders to implement these algorithms. Then the particular GPU based bump, parallax, relief, sphere, horizon mapping, cone stepping, local ray tracing, pyramidal and view-dependent displacement mapping methods, as well as their numerous variations are reviewed providing also implementation details of the shader programs. The paper presents these methods using uniform notation and also points out when different authors referred to similar concepts differently. In addition to basic displacement mapping, self-shadowing and silhouette processing are also reviewed. Based on the authors’ experiences gained having re-implemented these methods, their performance and quality are compared, and the advantages and disadvantages are fairly presented. (Displacement Mapping on the GPU – State of the Art László Szirmay-Kalos and Tamás Umenhoffer. Computer Graphics Forum. 2008.)

Interactive Depth of Field Using Simulated Diffusion on a GPU

January 18th, 2007

This Pixar Animation Studios Technical Report by Kass, Lefohn, and Owens describes a GPU-based data-parallel direct tridiagonal linear solver. To the authors’ knowledge, this is the first reported direct, linear-time tridiagonal GPU solver. The solver is used to implement a new heat-diffusion-based depth-of-field preview algorithm; and the paper describes solving thousands of tridiagonal systems, each with hundreds of elements, on the GPU at interactive rendering rates. The alternating direction implicit solution gives rise to separable spatially varying recursive (infinite-impulse response, IIR) filters that can compute large-kernel convolutions in constant time per pixel while respecting the boundaries between in-focus and out-of-focus objects. Recursive filters have traditionally been viewed as problematic for GPUs, but using the well-established method of cyclic reduction of tridiagonal systems, the authors are able to parallelize the computation and implement an efficient solution in terms of GPGPU primitives. (Michael Kass, Aaron Lefohn, and John Owens. Interactive Depth of Field Using Simulated Diffusion on the GPU, Technical Report #06-01, Pixar Animation Studios, January 2006.)

GPUGI: Global Illumination Effects on the GPU

December 13th, 2006

This tutorial explains how global illumination rendering methods can be implemented on Shader Model 3.0 GPUs. These algorithms do not follow the conventional local illumination model of DirectX/OpenGL pipelines, but require global geometric or illumination information when shading a point. In addition to the theory and state of the art of these approaches, the tutorial goes into the details of a few algorithms, including mirror reflection, refraction, caustics, diffuse/glossy indirect illumination, precomputation-aided global illumination for surface and volumetric models, obscurances and tone mapping, also giving their GPU implementation in HLSL or Cg language. (Laszlo Szirmay-Kalos, Laszlo Scecsi, Mateu Sbert: GPUGI: Global Illumination Effects on the GPU. Eurographics 2006 Tutorial.)

OpenGL FBO Class version 1.5

November 16th, 2006

Aaron Lefohn announces the release of version 1.5 of his OpenGL FBO Class. This release includes the following changes:

  1. Updated enumerations in error checking to match current FBO specification.
    Fixes compilation errors with current drivers.
  2. Small API change to AttachTexture to better support attaching multiple
    textures with a single entry point.
  3. Added FBO Manager for managing a pool of FBOs based on width, height, and
    format. Manager is configurable to use user-defined management policies/keys.

(Available on sourceforge.)

Radiosity on Graphics Hardware

August 4th, 2003

This report by Coombe et al. describes a technique for computing radiosity, including an adaptive subdivision of the model, using graphics hardware. The technique uses floating point textures and fragment programs to perform progressive refinement using a novel implementation of hemicube radiosity on the GPU. (Radiosity on Graphics Hardware. Greg Coombe, Mark J. Harris, Anselmo Lastra. UNC TR03-020. June, 2003.)

Photon Mapping on Programmable Graphics Hardware

June 8th, 2003

This paper by Purcell et al. presents a photon mapping algorithm that runs entirely on the GPU. The paper presents details for tracing photons, building the photon map, and computing the radiance estimate at each pixel using a k-nearest neighbor search.(Photon Mapping on Programmable Graphics Hardware. Timothy J. Purcell, Craig Donner, Mike Cammarano, Henrik Wann Jensen, and Pat Hanrahan. Proceedings of Graphics Hardware 2003, July 2003.)

GPU Algorithms for Radiosity and Subsurface Scattering

June 8th, 2003

This paper by Carr et al. describes a method for computing subsurface scattering on the GPU. They use a multi-resolution meshed atlas and modern GPU programmability to devise a real-time GPU algorithm that can render semi-transparent objects with diffuse subsurface-scattered illumination under dynamic lighting and viewing conditions. (GPU Algorithms for Radiosity and Subsurface Scattering. Nathan A. Carr, Jesse D. Hall, and John C. Hart. Proceedings of Graphics Hardware 2003, July 2003.)

Nonlinear Optimization Framework for Image-Based Modeling on Programmable Graphics Hardware

May 28th, 2003

This SIGGRAPH 2003 paper by Karl Hillesland, Sergey Molinov, and Radek Grzeszczuk casts nonlinear optimization as a data streaming process for computation on GPUs. The authors apply this approach to two distinct image-based modeling problems: light field mapping approximation and fitting the Lafortune model to spatial BRDFs. (Nonlinear Optimization Framework for Image-Based Modeling on Programmable Graphics Hardware. Karl E. Hillesland, Sergey Molinov, and Radek Grzeszczuk. To appear in the proceedings of SIGGRAPH 2003.)

Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid

April 18th, 2003

This paper by Bolz et al. of Cal Tech shows two basic, broadly useful, computational kernels implemented on GPUs: a sparse matrix conjugate gradient solver, and a regular-grid multigrid solver. The paper demonstrates a prototype implementation on NVIDIA’s GeForce FX, using geometric flow (cube smoothing movie, 3D photography scan denoising movie) and fluid simulation (particle advection movie) as application examples. (Sparse Matrix Solvers on the GPU: Conjugate Gradients and Multigrid. Jeff Bolz, Ian Farmer, Eitan Grinspun and Peter Schröder. To appear in the proceedings of SIGGRAPH 2003.)

General Mathematics in Graphics Hardware

November 14th, 2002

Chris Trendall and James Stewart of the University of Toronto explore the mathematical functionality available in graphics hardware by using it to perform a non-trivial calculation. (General calculations using graphics hardware, with application to interactive caustics. Chris Trendall and James Stewart. In Proceedings of Eurographics Workshop on Rendering. 2000.)