Fast GPU Histogram Analysis for Scene Post- Processing Andy Luedke Halo Development Team Microsoft Game Studios.

Slides:



Advertisements
Similar presentations
Filtering Approaches for Real-Time Anti-Aliasing
Advertisements

Exploration of advanced lighting and shading techniques
POST-PROCESSING SET09115 Intro Graphics Programming.
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
Photon Mapping on Programmable Graphics Hardware Timothy J. Purcell Mike Cammarano Pat Hanrahan Stanford University Craig Donner Henrik Wann Jensen University.
Frame Buffer Postprocessing Effects in DOUBLE-S.T.E.A.L (Wreckless)
Optimized Stencil Shadow Volumes
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
ADVANCED SKIN SHADING WITH FACEWORKS Nathan Reed — NVIDIA March 24, 2014.
Visualization and graphics research group CIPIC May 25, 2004Realistic Image Synthesis1 Tone Mapping Presented by Lok Hwa.
High Dynamic Range Imaging Samu Kemppainen VBM02S.
GI 2006, Québec, June 9th 2006 Implementing the Render Cache and the Edge-and-Point Image on Graphics Hardware Edgar Velázquez-Armendáriz Eugene Lee Bruce.
Week 11 - Wednesday.  Image based effects  Skyboxes  Lightfields  Sprites  Billboards  Particle systems.
High-Quality Parallel Depth-of- Field Using Line Samples Stanley Tzeng, Anjul Patney, Andrew Davidson, Mohamed S. Ebeida, Scott A. Mitchell, John D. Owens.
Real-Time Rendering SPEACIAL EFFECTS Lecture 03 Marina Gavrilova.
Parallel Prefix Sum (Scan) GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from articles taken from GPU Gems III.
Skin Rendering GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from David Gosselin’s Power Point and article, Real-time skin rendering,
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
Sorting and Searching Timothy J. PurcellStanford / NVIDIA Updated Gary J. Katz based on GPUTeraSort (MSR TR )U. of Pennsylvania.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
High Dynamic Range Imaging: Spatially Varying Pixel Exposures Shree K. Nayar, Tomoo Mitsunaga CPSC 643 Presentation # 2 Brien Flewelling March 4 th, 2009.
1 Photographic Tone Reproduction for Digital Images Brandon Lloyd COMP238 October 2002.
Farhan Mohamed Ali (W2-1) Jigar Vora (W2-2) Sonali Kapoor (W2-3) Avni Jhunjhunwala (W2-4) Siven Seth (W2-5) Presentation 1 MAD MAC th January, 2006.
Mapping Computational Concepts to GPU’s Jesper Mosegaard Based primarily on SIGGRAPH 2004 GPGPU COURSE and Visualization 2004 Course.
Real-Time Face Detection and Tracking Using Multiple Cameras RIT Computer Engineering Senior Design Project John RuppertJustin HnatowJared Holsopple This.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Post-rendering Cel Shading & Bloom Effect
Image Processing1 Image Filtering Filtering can be use to enhance some features and de- enhance others. Usually used as a pre-processing step.
Ray Tracing and Photon Mapping on GPUs Tim PurcellStanford / NVIDIA.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
NVIDIA PROPRIETARY AND CONFIDENTIAL Occlusion (HP and NV Extensions) Ashu Rege.
Computer Graphics Lecture 1 July 11, Computer Graphics What do you think of? The term “computer graphics” is a blanket term used to refer to the.
Spatial Tone Mapping in High Dynamic Range Imaging Zhaoshi Zheng.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
Jonathan M Chye Technical Supervisor : Mr Matthew Bett 2010.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Cg Programming Mapping Computational Concepts to GPUs.
High-Resolution Interactive Panoramas with MPEG-4 발표자 : 김영백 임베디드시스템연구실.
Advanced Computer Graphics Depth & Stencil Buffers / Rendering to Textures CO2409 Computer Graphics Week 19.
Multimedia Data Introduction to Image Processing Dr Sandra I. Woolley Electronic, Electrical.
03/05/03© 2003 University of Wisconsin Last Time Tone Reproduction If you don’t use perceptual info, some people call it contrast reduction.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Shadow Mapping Chun-Fa Chang National Taiwan Normal University.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
Finding Body Parts with Vector Processing Cynthia Bruyns Bryan Feldman CS 252.
Stencil Routed A-Buffer
Computer Graphics Blending CO2409 Computer Graphics Week 14.
2D Texture Synthesis Instructor: Yizhou Yu. Texture synthesis Goal: increase texture resolution yet keep local texture variation.
GPU Based Sound Simulation and Visualization Torbjorn Loken, Torbjorn Loken, Sergiu M. Dascalu, and Frederick C Harris, Jr. Department of Computer Science.
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
MSIM 842 VISUALIZATION II INSTRUCTOR: JESSICA R. CROUCH 1 A Particle System for Interactive Visualization of 3D Flows Jens Krüger Peter Kipfer.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
03/04/05© 2005 University of Wisconsin Last Time Tone Reproduction –Histogram method –LCIS and improved filter-based methods.
03/03/03© 2003 University of Wisconsin Last Time Subsurface scattering models Sky models.
: Chapter 5: Image Filtering 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Fine Tone Control in Hardware Hatching Matthew Webb Emil Praun Hugues Hoppe Adam Finkelstein Princeton University Microsoft Research Princeton University.
Postmortem: Deferred Shading in Tabula Rasa Rusty Koonce NCsoft September 15, 2008.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Week 11 - Wednesday CS361.
Graphics Processing Unit
Deferred Lighting.
From Turing Machine to Global Illumination
CS451Real-time Rendering Pipeline
Graphics Processing Unit
Sorting and Searching Tim Purcell NVIDIA.
Resolution Resolution: 6 x 4.
RADEON™ 9700 Architecture and 3D Performance
Emerging Technologies for Games Review & Revision Strategy
Presentation transcript:

Fast GPU Histogram Analysis for Scene Post- Processing Andy Luedke Halo Development Team Microsoft Game Studios

Why do Histogram Analysis? »Dynamically adjust post- processing settings based on rendered scene content »Drive tone adjustments by discovering intensity levels and adjusting tonemapper settings »Make environments feel consistent with a wide range of illumination »Mimic eye’s natural adaptation to exposure and focal ranges

Existing Techniques »Average Scene Luminance  Varies significantly with small perceived changes in HDR scenes »Luminance Histogram  Provides more useful exposure data  Limited by fixed number of bins  CPU generated from locked texture  Adjustable granularity, poor performance  GPU queries to update histogram bins  Low granularity, delayed scene response

Luminance Histogram »Used to find interesting exposure control points  Median luminance (50 th percentile)  Bright point (90 th – 95 th percentile) »Search histogram for each point »Only contains luminance data from previously rendered frames »Expensive to generate and search »Histograms are not great for exposure control

Sorted Luminance Buffer »Sorting the luminance fixes many problems with histogram method »Expensive to sort on the CPU »Sort on the GPU instead  Parallel sorts are quite fast on GPUs  Works on current frame’s data »Easy to find percentiles in a sorted luminance buffer  Sample center of buffer for median value, or at X*N/100 for X th percentile

GPU Sorting »Avoids histogram range clamping and bin granularity problems »Works on current frame’s values »Sorts multiple channels at once  Sort luminance and depth in a two channel buffer, or more in 4 channels »Sorted buffer remains on GPU  CPU processing of exposure control can be moved to the GPU exclusively

GPU Sorting (continued) »Bitonic sort works well on the GPU  Well suited for shader implementation  Exactly ½*(log 2 n * (log 2 n+1)) passes »Scale to slower hardware by reducing size of sorting buffer  Exposure control point lookups are still direct, but have less resolution »Bitonic sort works best on power of 2 textures, but can be tweaked to work on other sizes

Bitonic Sort Demo »Red = Average luminance »Green = Maximum luminance

GPU Exposure Processing »Shader samples sorted luminance buffer and outputs updated exposure control values  Use GPU to sample many points and do complex adjustments (curves, etc)  Blend new exposure control values with previous values over time »Another shader generates further tonemapping settings  Bloom settings, saturation, tone, etc.

Local Exposure Control »Use one channel of sort buffer as a key for another channel’s sort  Sort regions of the screen in addition to the full frame’s values  Still direct access as long as each region has a known number of pixels  RGBA=[Lum, Depth, Local Lum, Key] »Allows you to divide the screen into multiple exposure zones and mix local and global adjustments

Keyed Luminance Sort »Red/Green = Avg/Max Luminance »Blue = Regional Avg Luminance

Local Exposure Control »Use different region masks to customize to your game’s needs »Must know how many pixels in each region for direct value access

Focal Range Control »Sorted depth gives useful information for DOF ranges »Detect changes in depth range, adjusting DOF settings to simulate eye’s adjustment of focal range »Extracting depth has sampling cost, but no additional sorting cost  May not need to filter on downsample

CPU Exposure Pipeline Tonemapper Update Tonemapping Constants Search Histogram and Update Exposure Controls Generate Histogram Downsample and Extract Luminance Render Main Scene

GPU Exposure Pipeline Tonemapper Update Tonemapping Settings Update Exposure Controls Bitonic Sort Downsample and Extract Luminance Render Main Scene

Questions? »Please fill out your surveys References »GPU Gems, Chapter 37 »GPU Gems 2, Chapter 46 »UberFlow: A GPU-based particle engine [Kipfer, et al.] »Wikipedia, Sorting Algoritms