Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.

Slides:



Advertisements
Similar presentations
Accelerating Real-Time Shading with Reverse Reprojection Caching Diego Nehab 1 Pedro V. Sander 2 Jason Lawrence 3 Natalya Tatarchuk 4 John R. Isidoro 4.
Advertisements

COMPUTER GRAPHICS SOFTWARE.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
Visualization and graphics research group CIPIC May 25, 2004Realistic Image Synthesis1 Tone Mapping Presented by Lok Hwa.
WSCG 2007 Hardware Independent Clipmapping A. Seoane, J. Taibo, L. Hernández, R. López, A. Jaspe VideaLAB – University of A Coruña (Spain)
Fast GPU Histogram Analysis for Scene Post- Processing Andy Luedke Halo Development Team Microsoft Game Studios.
Hardware-Accelerated Adaptive EWA Volume Splatting Wei Chen ZJU Liu Ren CMU Matthias Zwicker MIT Hanspeter Pfister MERL.
Real-time Dynamic HDR Based Lighting in a Static Environment Marcus Hennix Daniel Johansson Gunnar Johansson Martin Wassborn.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
GPU-Based Frequency Domain Volume Rendering Ivan Viola, Armin Kanitsar, and Meister Eduard Gröller Institute of Computer Graphics and Algorithms Vienna.
Final Gathering on GPU Toshiya Hachisuka University of Tokyo Introduction Producing global illumination image without any noise.
Shadow Volumes on Programmable Graphics Hardware Speaker: Alvin Date: 2003/11/3 EUROGRAPHICS 2003.
Photographic Tone Reproduction for Digital Images Erik Reinhard Utah Mike Stark Peter Shirley Jim Ferwerda Cornell.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
High Dynamic Range Emeka Ezekwe M11 Christopher Thayer M12 Shabnam Aggarwal M13 Charles Fan M14 Manager: Matthew Russo 6/26/
Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages I. Viola, A. Kanitsar, M. E. Gröller Institute of Computer Graphics.
1 Photographic Tone Reproduction for Digital Images Brandon Lloyd COMP238 October 2002.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
A Multigrid Solver for Boundary Value Problems Using Programmable Graphics Hardware Nolan Goodnight Cliff Woolley Gregory Lewin David Luebke Greg Humphreys.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Enhancing GPU for Scientific Computing Some thoughts.
Spatial Tone Mapping in High Dynamic Range Imaging Zhaoshi Zheng.
Cg Programming Mapping Computational Concepts to GPUs.
1 Introduction to Computer Graphics SEN Introduction to OpenGL Graphics Applications.
NVIDIA Fermi Architecture Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
Review of OpenGL Basics
Accelerated Stereoscopic Rendering using GPU François de Sorbier - Université Paris-Est France February 2008 WSCG'2008.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Maths & Technologies for Games Advanced Graphics: Scene Post-Processing CO3303 Week
CSCI 440.  So far we have learned how to  build shapes  create movement  change views  add simple lights  But, our objects still look very cartoonish.
Geometry processing on GPUs Jens Krüger Technische Universität München.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Ray Tracing using Programmable Graphics Hardware
Mapping Computational Concepts to GPUs Mark Harris NVIDIA.
Shadows David Luebke University of Virginia. Shadows An important visual cue, traditionally hard to do in real-time rendering Outline: –Notation –Planar.
GPGPU: Parallel Reduction and Scan Joseph Kider University of Pennsylvania CIS Fall 2011 Credit: Patrick Cozzi, Mark Harris Suresh Venkatensuramenan.
Dynamic Geometry Displacement Jens Krüger Technische Universität München.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 GPU.
3/12/2013Computer Engg, IIT(BHU)1 CUDA-3. GPGPU ● General Purpose computation using GPU in applications other than 3D graphics – GPU accelerates critical.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
CPSC 6040 Computer Graphics Images
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Graphics Processing Unit
From Turing Machine to Global Illumination
The Graphics Rendering Pipeline
GRAPHICS PROCESSING UNIT
Chapters VIII Image Texturing
Static Image Filtering on Commodity Graphics Processors
GPGPU: Parallel Reduction and Scan
RADEON™ 9700 Architecture and 3D Performance
University of Virginia
Introduction to Computer Graphics
Presentation transcript:

Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia Eurographics Symposium on Rendering th June - Leuven, Belgium

HDR and Tone Mapping Clamped to [0,1] Compressed

Advances in graphics hardware n Physically-based rendering on the GPU (Purcell et al, 2003) n High dynamic range texture mapping (Debevec et al, 2001)

System Overview n Interactive tone mapping system for an OpenGL application tone mapping systemapplication HDR image LDR image Frame buffer Display callback

Interface to the application tmInitialize(); // Initialize the system tmEnable(); // Retarget GL calls n Draw geometry tmCompress(); // Compress output tmDisable(); // Restore app context tone mapping system application

Choosing a tone mapping operator n Photographic Tone Reproduction for High Contrast Images (Reinhard et al, 2002) n Global operator is a simple transfer function scaled luminance 0 1

Choosing a tone mapping operator n Local operator n Digital analog to ‘burning’ and ‘dodging’ local area luminance Center-surround

n Global operator is simple and fast to compute n Only one global computation n We can dynamically choose the number of zones Why use this tone mapping operator?

Variable number of zones: 3 3 Zones

Variable number of zones: 4 3 Zones

Variable number of zones: 5 3 Zones

Variable number of zones: 6 3 Zones

Variable number of zones: 7 3 Zones

Variable number of zones: 8 3 Zones

System block diagram

Implementation n Target architecture n ATI Radeon 9800 (R350) n Data storage n Floating-point off-screen buffers (pbuffers) n Multiple rendering surfaces (GL_AUXi) n Algorithms n ARB fragment and vertex assembly n Generate fragments with image-sized quads n Data representation n Vector vs. scalar organization

Global operator block diagram

Implementation: global operator n Simple luminance transform n Store luminance and log luminance in separate channels HDR image Luminance Log luminance Mipmap reduction LDR image Single buffer luminance log luminance

Implementation: global operator HDR image Luminance Log luminance Mipmap reduction LDR image Single buffer Single rendering surface log luminance channel log average luminance

Implementation: global operator HDR image Luminance Log luminance Mipmap reduction LDR image Single buffer operator shader texture 0 texture 1 texture 2

Local operator block diagram

Implementation: GPU-based convolutions n Transform n-vector product into multiple 4-vector products filter luminance + + …………

Vectorizing the luminance n Output 4 pixels at the same time n Useful for expensive algorithms n Requires a conversion back to scalar form. Stacked domain

n A simple method for luminance vectorization: Vectorizing the luminance R G B A luminance

n A simple method for luminance vectorization: Vectorizing the luminance R G B A luminance

n A simple method for luminance vectorization: Vectorizing the luminance R G B A luminance

n A simple method for luminance vectorization: Vectorizing the luminance R G B A luminance

n A simple method for luminance vectorization: n Preserves spatial locality Vectorizing the luminance R G B A luminance

filter image Example:1 x n inner product stacked image GPU-based convolutions

filter image stacked image GPU-based convolutions Pass 1

filter image stacked image GPU-based convolutions Pass 1Pass 2 +

filter image stacked image GPU-based convolutions Pass 1Pass 2Pass 3 ++

GPU-based convolutions n Compute multiple 4-vector products per pass n Less shader and texture switching stacked image ++ Single render pass

GPU-based convolutions n Compute multiple 4-vector products per pass n Less shader and texture switching stacked image ++ Single render pass

GPU-based convolutions n Compute multiple 4-vector products per pass n Less shader and texture switching stacked image ++ Single render pass

GPU-based convolutions n Compute multiple 4-vector products per pass n Less shader and texture switching stacked image ++ Single render pass

GPU-based convolutions n Compute multiple 4-vector products per pass n Less shader and texture switching stacked image ++ Single render pass

GPU-based convolutions n Advantages : n Handles large kernels n Efficient memory access n No transform back to scalar values 21 x 21 kernel ~ 10 ms 41 x 41 kernel ~ 16 ms 11 x 11 kernel ~ 6 ms 512 X 512 image

System block diagram

Calculating adaptation zones on the GPU luminance 0 Buffer 0Buffer 1 FRONT BACK 1 filtered

Calculating adaptation zones on the GPU luminance 2 Buffer 0Buffer 1 FRONT BACK 1 filtered

Calculating adaptation zones on the GPU luminance 2 Buffer 0 FRONT BACK 3 Buffer 1 filtered

Calculating adaptation zones on the GPU luminance 4 FRONT BACK 3 Buffer 0Buffer 1 filtered

Image size Frames per second 16 bit floats 32 bit floats Performance: global operator

Performance: local operator Number of zones 16 bit floats 32 bit floats Frames per second

Performance comparison: CPU vs. GPU

Results: Accuracy n Comparison with CPU: 512 x 512 image ImageRMS % error Scaled luminance0.022 % Convolution (5 x 5)0.026 % Convolution (49 x 49)0.032 % Final image1.051 %

False-color zone images CPUGPU

Compressed: 2 zonesClamped [0,1] Images generated at ~30Hz

Compressed: 2 zonesClamped [0,1]

Compressed: 2 zonesClamped [0,1] Images generated at ~30Hz

Compressed: 2 zonesClamped [0,1] Images generated at ~30Hz

Compressed: 2 zonesClamped [0,1] Images generated at ~30Hz

Compressed: 2 zonesClamped [0,1] Images generated at ~30Hz

Conclusion and Future Work n Summary n System for interactively compressing HDR output from an OpenGL application n Complex tone mapping operator on the GPU n Future Work n Other tone mapping operators n Further optimizations n Non-invasive implementation