GPU-Accelerated Deep Shadow Maps

Similar documents
GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering

Volume Rendering - Introduction. Markus Hadwiger Visual Computing Center King Abdullah University of Science and Technology

Deep Opacity Maps. Cem Yuksel and John Keyser Texas A&M University

Volume Graphics Introduction

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

Ray Casting on Programmable Graphics Hardware. Martin Kraus PURPL group, Purdue University

3/29/2016. Applications: Geology. Appliations: Medicine. Applications: Archeology. Applications: Klaus Engel Markus Hadwiger Christof Rezk Salama

Applications of Explicit Early-Z Culling

Real-Time Hair Simulation and Rendering on the GPU. Louis Bavoil

Enabling immersive gaming experiences Intro to Ray Tracing

Advanced GPU Raycasting

Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

Programmable Shaders for Deformation Rendering

Hair Self Shadowing and Transparency Depth Ordering Using Occupancy maps

Deep Opacity Maps. Cem Yuksel 1 and John Keyser 2. Department of Computer Science, Texas A&M University 1 2

CSM Scrolling. An acceleration technique for the rendering of cascaded shadow maps

DiFi: Distance Fields - Fast Computation Using Graphics Hardware

Texture Mapping II. Light maps Environment Maps Projective Textures Bump Maps Displacement Maps Solid Textures Mipmaps Shadows 1. 7.

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

CIS 467/602-01: Data Visualization

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

Interactive Non-Linear Image Operations on Gigapixel Images

Interactive GPU-based Segmentation of Large Medical Volume Data with Level-Sets

Data Visualization (CIS/DSC 468)

First Steps in Hardware Two-Level Volume Rendering

A Self-Shadow Algorithm for Dynamic Hair using Density Clustering

VAO++: Practical Volumetric Ambient Occlusion for Games

Computer Graphics Shadow Algorithms

Volume Illumination. Visualisation Lecture 11. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Working with Metal Overview

Shadows. COMP 575/770 Spring 2013

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

frame buffer depth buffer stencil buffer

Getting fancy with texture mapping (Part 2) CS559 Spring Apr 2017

CS427 Multicore Architecture and Parallel Computing

Data Visualization (DSC 530/CIS )

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering

Dynamic Ambient Occlusion and Indirect Lighting. Michael Bunnell NVIDIA Corporation

Raycasting. Ronald Peikert SciVis Raycasting 3-1

Real-Time Hair Rendering on the GPU NVIDIA

3D Rasterization II COS 426

Fast Visualization of Object Contours by Non-Photorealistic Volume Rendering

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Accelerating Volume Raycasting using Occlusion Frustums

Real-Time Shadows. Computer Graphics. MIT EECS Durand 1

Lecture 9: Deferred Shading. Visual Computing Systems CMU , Fall 2013

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Department of Computer Engineering 3D Graphics in Games and Movies

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

Intro to Ray-Tracing & Ray-Surface Acceleration

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes J. Pantaleoni, L. Fascione, M. Hill, T. Aila

Display. Introduction page 67 2D Images page 68. All Orientations page 69 Single Image page 70 3D Images page 71

Ray Tracing with Multi-Core/Shared Memory Systems. Abe Stephens

Data Visualization (DSC 530/CIS )

CS451 Texturing 4. Bump mapping continued. Jyh-Ming Lien Department of Computer SCience George Mason University. From Martin Mittring,

Volumetric Particle Shadows. Simon Green

GeForce4. John Montrym Henry Moreton

Efficient Image-Based Methods for Rendering Soft Shadows. Hard vs. Soft Shadows. IBR good for soft shadows. Shadow maps

A SXGA 3D Display Processor with Reduced Rendering Data and Enhanced Precision. Seok-Hoon Kim MVLSI Lab., KAIST

Online Interactive 4D Character Animation

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

A Bandwidth Reduction Scheme for 3D Texture-Based Volume Rendering on Commodity Graphics Hardware

By: Tyler Spears Mentor: Dr. Bijaya Karki. Visualizing Time- Dependent Atomic Data in OpenGL

GPU Computation Strategies & Tricks. Ian Buck NVIDIA

Emissive Clip Planes for Volume Rendering Supplement.

6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

Efficient Shadows for GPU-based Volume Raycasting

AMCS / CS 247 Scientific Visualization Lecture 10: (GPU) Texture Mapping. Markus Hadwiger, KAUST

PowerVR Hardware. Architecture Overview for Developers

CS4620/5620: Lecture 14 Pipeline

Jingyi Yu CISC 849. Department of Computer and Information Science

Exaggerated Shading for Depicting Shape and Detail. Szymon Rusinkiewicz Michael Burns Doug DeCarlo

PowerVR Series5. Architecture Guide for Developers

Associate Prof. Michael Wimmer. TU Wien

Scalar Data. Visualization Torsten Möller. Weiskopf/Machiraju/Möller

Advanced Graphics. Path Tracing and Photon Mapping Part 2. Path Tracing and Photon Mapping

Texture. Texture Mapping. Texture Mapping. CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

CS 475 / CS 675 Computer Graphics. Lecture 11 : Texture

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CS 5630/6630 Scientific Visualization. Volume Rendering III: Unstructured Grid Techniques

Distributed Ray Tracing

Specialized Acceleration Structures for Ray-Tracing. Warren Hunt

Scalable multi-gpu cloud raytracing with OpenGL

Cloud Rendering using 3D Textures

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Real-Time Graphics Architecture. Kurt Akeley Pat Hanrahan. Ray Tracing.

Practical Techniques for Ray Tracing in Games. Gareth Morgan (Imagination Technologies) Aras Pranckevičius (Unity Technologies) March, 2014

Bringing Hollywood to Real Time. Abe Wiley 3D Artist 3-D Application Research Group

Volume Rendering. Lecture 21

Real-Time Ray Tracing Using Nvidia Optix Holger Ludvigsen & Anne C. Elster 2010

Capturing Shape and Reflectance of Food

Beyond Programmable Shading. Scheduling the Graphics Pipeline

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Direct Volume Rendering

Transcription:

GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering Markus Hadwiger, Andrea Kratz, Christian Sigg*, Katja Bühler VRVis Research Center, Vienna *ETH Zurich Andrea Kratz

Motivation High-quality shadows for GPU ray-casting Ray-casting Flexibility (adaptive sampling rates) Efficiency (early ray termination, empty space skipping) Image quality Shadows in volume rendering Pre-computed shadow volume [Behrens and Ratering '98] Half-angle slicing [Kniss et al. '02] Image taken from [Kniss et. al 02]

Motivation Deep shadow maps [Locovic and Veach '00] DSMs unify volumes and geometry Image taken from [Locovic and Veach 00] Opacity shadow maps [Kim and Neumann '01] Regular sampling A self-shadowing algorithm for dynamic hair using density clustering [Mertens et al. '04] Irregular sampling with restricted number of bins

Motivation Increased realism Unshaded volume rendering Gradient-shaded volume rendering Volume rendering with shadows

Motivation Provide intuitive visual cues for depth and shape Improved depth perception More contrast Meaningful images even with simple transfer functions

Motivation Enhance overall quality of images Gradient-less Avoid noise in homogeneous areas Reveal fine and detailed structures

Algorithm Overview 2-pass algorithm Deep shadow map (DSM) creation Rendering

Deep Shadow Map Creation Visibility function Ray-casting in light space Node := (opacity, depth) pair

Deep Shadow Map Creation Compression (V (z) V(z) ε

Deep Shadow Map Creation Determine permissible slopes Slope range } +ε } -ε

Deep Shadow Map Creation Determine permissible slopes Intersect previous slope range with next slope range } +ε } -ε

Deep Shadow Map Creation Determine permissible slopes

Deep Shadow Map Creation Intersect previously computed with current slope

Deep Shadow Map Creation Slope becomes empty:

Deep Shadow Map Creation Start at end point of last segment

Deep Shadow Map Creation Compressed visibility function V'i,j(z)

Deep Shadow Map Creation The deep shadow map data structure + = x copy copy... y index

Rendering Overview Ray-casting from viewpoint Linear search in DSM data structure for depth Take advantage of spatial coherence Modulate pixel color by opacity obtained from DSM

Rendering Linear search in DSM data structure

Optimizations Overview Performance Map is created in a screen-tiled manner using occlusion queries Memory management Cached blocking scheme to maintain the volume DSM storage in a blocked layout Image quality Pre-compression

Optimizations Original DSM vs. Packed DSM depth

Optimizations Original DSM vs. Packed DSM depth

Optimizations Screen-tiled map creation

Optimizations Screen-tiled map creation Separate screen into tiles

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile To avoid pipeline stalls, check queries 0 50 62 0 only after a specified time_offset

Optimizations Map creation in a screen-tiled manner Separate screen into tiles Update active tiles Maintain occlusion query for every tile To avoid pipeline stalls, check queries only after a specified time_offset Skip empty tiles and copy non-empty tiles into DSM

Optimizations packed data Copy Save storage index data

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile To avoid pipeline stalls, check queries only after a specified time_offset Skip empty tiles and copy non-empty tiles into DSM Return to step (2)

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile To avoid pipeline stalls, check queries only after a specified time_offset Skip empty tiles and copy non-empty tiles into DSM Return to step (2)

Optimizations Screen-tiled map creation Separate screen into tiles Update active tiles Maintain occlusion query for every tile To avoid pipeline stalls, check queries only after a specified time_offset Skip empty tiles and copy non-empty tiles into DSM Return to step (2)

Rendering Dependent texture fetches (during creation) index data volume block cache

Rendering Dependent texture fetches (during rendering) index data DSM block cache

Optimizations Pre-integration and pre-compression Problem Capture high frequencies in non-linear transfer functions Pre-integration [Engel et al. 2001] Pre-compute the volume rendering integral for all possible combinations of 2 successive samples Pre-compression Pre-compute and pre-compress the visibility function for all possible combinations of 2 successive samples

Optimizations With and without pre-compression Miss high frequencies in the opacity transfer function Better approximation of the visibility function Undesired self-shadowing No self-shadowing s1 s2 s1 s2

Optimizations Pre-compression Pre-integrate and compress the visibility functions Sampling rate decoupled from transfer function domain Store pre-computed intermediate nodes s2 s2 s1 s1 s1 s2

Results Live Demo

Results Performance for DSM creation ATI Radeon X1900 XTX Viewport 512 x 512 [fps] 256 x256 512 x 512 ε = 0.02 ~ 2.5 ~ 1.5 ε = 0.06 ~ 3.5 ~3 256 x256 512 x 512 ε = 0.02 ~3 ~ 1.5 6-8 fps (rendering) ε = 0.06 ~4 ~ 2.0 512x512x333 [fps] 6-8 fps (rendering) 256x128x256

Conclusion & Future Work Conclusion High-quality shadows for volume ray-casting Reduced amount of memory usage Extension of pre-integration to visibility functions Future work Shadow map filtering during rendering Colored shadows Scattering approximations Geometry

Thank you! For more information, visit http://medvis.vrvis.at Funding KPlus program of the Austrian government Femtech initiative of bmvit, http://www.femtech.at/