High-Quality Volume Graphics on Consumer PC Hardware

Slides:



Advertisements
Similar presentations
16.1 Si23_03 SI23 Introduction to Computer Graphics Lecture 16 – Some Special Rendering Effects.
Advertisements

ENV 2006 CS4.1 Envisioning Information: Case Study 4 Focus and Context for Volume Visualization.
An Optimized Soft Shadow Volume Algorithm with Real-Time Performance Ulf Assarsson 1, Michael Dougherty 2, Michael Mounier 2, and Tomas Akenine-Möller.
Normal Map Compression with ATI 3Dc™ Jonathan Zarge ATI Research Inc.
Texture Mapping. Texturing  process that modifies the appearance of each point on a surface using an image or function  any aspect of appearance can.
Interactive High-Quality Volume Rendering on Flexible Consumer Graphics Hardware Klaus Engel, Martin Kraus, Thomas Ertl Visualization and Interactive Systems.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
1 Computer Graphics Chapter 9 Rendering. [9]-2RM Rendering Three dimensional object rendering is the set of collective processes which make the object.
IView: A Feature Clustering Framework for Suggesting Informative Views in Volume Visualization Ziyi Zheng, Nafees Ahmed, Klaus Mueller Visual Analytics.
Fast High Accuracy Volume Rendering Thesis Defense May 2004 Kenneth Moreland Ph.D. Candidate Sandia is a multiprogram laboratory operated by Sandia Corporation,
Hank Childs, University of Oregon November 15 th, 2013 Volume Rendering, Part 2.
Week 9 - Wednesday.  What did we talk about last time?  Fresnel reflection  Snell's Law  Microgeometry effects  Implementing BRDFs  Image based.
Computer Graphics - Class 10
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Information Visualization.
Splatting Josh Anon Advanced Graphics 1/29/02. Types of Rendering Algorithms Backward mapping Image plane mapped into data Ray casting Forward mapping.
Direct Volume Rendering Joe Michael Kniss Scientific Computing and Imaging Institute University of Utah.
Introduction to Volume Visualization Mengxia Zhu Fall 2007.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Shading Languages By Markus Kummerer. Markus Kummerer 2 / 19 State of the Art Shading.
A Simple, Efficient Method for Realistic Animation of Clouds
Painterly Rendering for Animation Barbara J. Meier Walt Disney Feature Animation SIGGRAPH 96.
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Volume Graphics - Advanced Klaus Engel Volume.
CSS 522 Topics in Rendering March 01,2011 Scott and Lew.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
02/25/05© 2005 University of Wisconsin Last Time Meshing Volume Scattering Radiometry (Adsorption and Emission)
Rendering Adaptive Resolution Data Models Daniel Bolan Abstract For the past several years, a model for large datasets has been developed and extended.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
-Global Illumination Techniques
Scientific Visualization Module 6 Volumetric Algorithms (adapted by S.V. Moore – slides deleted, modified, and added) prof. dr. Alexandru (Alex) Telea.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
University of Illinois at Chicago Electronic Visualization Laboratory (EVL) Multi-Dimensional Transfer Functions for Interactive Volume Rendering & Interactive.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
CS-378: Game Technology Lecture #4: Texture and Other Maps Prof. Okan Arikan University of Texas, Austin V Lecture #4: Texture and Other Maps.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
CMSC 635 Volume Rendering. Volume data  3D Scalar Field: F(x,y,z) = ?  Implicit functions  Voxel grid  Scalar data  Density  Temperature  Wind.
Volume Rendering CMSC 491/635. Volume data  3D Scalar Field: F(x,y,z) = ?  Implicit functions  Voxel grid  Scalar data  Density  Temperature  Wind.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Real-Time rendering Chapter 4.Visual Appearance 4.4. Aliasing and antialiasing 4.5. Transparency,alpha,and compositing 4.6. Fog 4.7. Gamma correction
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
REAL-TIME VOLUME GRAPHICS Klaus Engel Siemens AG, Erlangen, Germany Eurographics 2006 Real-Time Volume Graphics [05] Transfer Functions.
Lecture 7: Intro to Computer Graphics. Remember…… DIGITAL - Digital means discrete. DIGITAL - Digital means discrete. Digital representation is comprised.
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
SIGGRAPH 2010 Course: Physically Based Shading Models in Film and Game Production SIGGRAPH 2010 Physically Based Shading Models in Film and Game Production.
Shading in OpenGL Ed Angel Professor Emeritus of Computer Science University of New Mexico 1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Electronic Visualization Laboratory (EVL) University of Illinois at Chicago Paper-4 Interactive Translucent Volume Rendering and Procedural Modeling Joe.
Single Pass Point Rendering and Transparent Shading Paper by Yanci Zhang and Renato Pajarola Presentation by Harmen de Weerd and Hedde Bosman.
Discontinuous Displacement Mapping for Volume Graphics, Volume Graphics 2006, July 30, Boston, MA Discontinuous Displacement Mapping for Volume Graphics.
11/5/2002 (c) University of Wisconsin, CS 559 Last Time Local Shading –Diffuse term –Specular term –All together –OpenGL brief overview.
Hardware Accelerated Volume Rendering Using PC Hardware CSE564 Final Demo Evan Closson.
Transfer Fucntion slides knowledgement : G. Kindlmann.
Shadows David Luebke University of Virginia. Shadows An important visual cue, traditionally hard to do in real-time rendering Outline: –Notation –Planar.
Lighting and Reflection Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
1 Per-Pixel Opacity Modulation for Feature Enhancement in Volume Rendering Speaker: 吳昱慧 Date:2010/11/16 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER.
David Luebke 3/17/2016 Advanced Computer Graphics Antialiasing David Luebke
Processing Images and Video for An Impressionist Effect Automatic production of “painterly” animations from video clips. Extending existing algorithms.
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.
Visualization Shading
Volume Visualization Chap. 10 November 20 , 2008 Jie Zhang Copyright ©
Deferred Lighting.
Transfer Function Transfer functions make volume data visible
Volume Visualization Chap. 10 December 3 , 2009 Jie Zhang Copyright ©
(c) 2002 University of Wisconsin
Volume Rendering Lecture 21.
CS-378: Game Technology Lecture #4: Texture and Other Maps
School of Computer Science and Engineering
Presentation transcript:

High-Quality Volume Graphics on Consumer PC Hardware Klaus Engel Joe Kniss Markus Hadwiger Christof Rezk-Salama

a f RGB Map data value f to color and opacity Shading, Compositing… Human Tooth CT a(f) RGB(f) f Shading, Compositing…

Optical Properties Color (RGB) Emissive term ~ =

Optical Properties ~ Alpha (a.k.a. opacity or extinction) = = Attenuates light based on density ~ = =

Optical Properties ~ Traditional Volume Rendering Equation Emission & absorption ~

Optical Properties Scale alpha values based on sample rate (sr) 1.3 .7

Transfer Function Transform scalar data value into optical properties Use optical properties to solve integral Very easy to implement Data is a texture Transfer function is a lookup Compute Riemann sum using “over operator”

Transfer Function Pre-classification Post-classification Transfer function evaluated before interpolation, i.e. interpolation of colors not data Transfer function evaluated after interpolation, i.e. data is interpolated first

Implementation Two choices: Texture Lookup Table glColorTable* Varies depending on hardware, may require a special texture data format Fast Dependent Texture Read Very hardware dependent Becoming more general, see OpenGl 2.0 Slower but more flexible…

Transfer Function Problem: f(x,y,z) No shape or depth queues No shading. color alpha f(x,y,z)

Transfer Function Solution: Faux Shading f(x,y,z) Ramp color to black with alpha Silhouette edges color alpha f(x,y,z)

Transfer Function Better: Surface Shading Slower, requires normal More flexible

Transfer Function Better: Surface Shading Slower, requires normal More flexible Faux shading enhances

Transfer Function Problem: Can’t surface shade homogeneous regions Need good gradients Sensitive to noise

Transfer Function Solution: Surface scalar (s) Only shade high gradient magnitudes: Or, add s to TF Interpolate…

Transfer Function Problem: How did the light get there? No attenuation through volume Not realistic!

Transfer Function Solution: Shadows Better depth queues Dramatic effects

Shadows Image plane r1 r0 Eye Light

Shadows Sample ri (s) Image plane r1 r0 IL l0 Eye ~

Shadows Implementation: 2 passes Attenuate from the light source Render from the eye Store light attenuation in second volume Multiply color by attenuation from shadow volume

Shadows Disadvantages: Difficult to build shadow volume on the card Slow to build off the card Additional volume required Attenuation leakage Blurry shadow boundaries Low resolution shadows!

Shadows Alternative: Incremental shadows Generate shadows one slice at a time Only use a 2D buffer Image space shadow computation All on card Half angle slicing

Slicing from light’s point of view Shadows Eye Slicing from light’s point of view

Slicing from eye’s point of view Shadows Eye Slicing from eye’s point of view

Half angle slicing: good from either point of view Incremental Shadows Eye Half angle slicing: good from either point of view

Similar aspect ratio from both points of view Incremental Shadows Similar aspect ratio from both points of view

Incremental Shadows * Slice pass 1

Incremental Shadows Slice pass 2

Incremental Shadows Advantages: Disadvantages: Screen space shadows No leakage Use render to texture to optimize Shades perturbed volumes Simple implementation Disadvantages: Aliasing at sharp opacity changes Fix with slightly larger light buffer

Shadows Problem: Shadows still too dark Direct attenuation is inadequate Need to handle higher order light transport effects Shadows

Shadows Solution: Translucency One consequence of light scattering Smoke, clouds, skin, wax…. Shadows Translucent

Translucency Wax: Real Shadows

Translucency Wax: Real Shadows Translucent

Translucency Add indirect attenuation Direct attenuation, same as shadows Blurred indirect attenuation, includes an indirect alpha

Direct (Id) and indirect (Ii) attenuation Translucency Direct (Id) and indirect (Ii) attenuation

Translucency How? Same as shadows (two light buffers) Sample previous light buffer multiple times for blur Ping-pong blending Store indirect in a color component Sum direct and indirect in fragment shader for the eye pass Only use direct attn. for eye pass

Translucency Problem: Still doesn’t look right Real Shadows Translucent

Translucency Solution: add spectral attenuation Real Translucent w/spectral attn.

Translucency Spectral attenuation: Attenuate some colors more than others Spectral indirect attn. is simplest Need separate alpha for RGB Store in RGB components of light buffer

Translucency Indirect alpha vs. transport color Alpha: Transport: Transport color is easier to specify

Optical Properties Recap: Reflective color/Emission (RGB) Direct attenuation/alpha (A) Surface scalar (s) Indirect attenuation (Ar,Ag,Ab) Others? Scattering, absorption, phase function, density, emission, index of refraction…

Transfer function Specification Simple, easy Expressive Guided

Transfer function Typical: 1D linear ramps f(x,y,z) Independent R,G,B,A control Difficult Trial and error alpha f(x,y,z)

Transfer function Problem: f(x,y,z) RGB = bad color space for humans No concept of features alpha f(x,y,z)

Transfer function Better: set color at control points f(x,y,z) Use HSV or HLS color spaces Simplified interface Still no guidance alpha f(x,y,z)

Transfer function Guided techniques: Design Galleries Thumbnails Semi-Automatic Dual-domain interaction

Design Galleries Treat TF and rendering as a high dimensional parameter space Stochastically sample space Cluster images based on fitness Select best looking image

Design Galleries

Design Galleries Computationally expensive Difficult to implement Not guided by dataset specifics Only handles 1D transfer functions

Thumbnails Visual history of changes Show important regions of TF Show effects of potential changes

Thumbnails spreadsheets

Thumbnails Parameterization

Semi-automatic Volumetric edge detection Use first and second derivatives Build histogram volumes Use simplified interface Generate 1D or 2D TFs

Semi-automatic Position of boundary center

Semi-automatic

Semi-automatic Identifies data ranges of boundaries Still requires hand-editing Not really an interactive process Demonstrates the value of histograms

Transfer function What is a 2D transfer function Multiple values per sample point 2D lookup table Each value is an axis of TF Better specificity More complicated to use

Transfer function RGB( ) Generalize… ( )

Transfer function ( , ) RGB( , ) Modify…

Transfer function ( , ) RGB( , ) Modify…

- + Transfer function RGB ( , , ) Second directional derivative measured with Hessian -

Transfer function + RGB ( , , ) Done -

Transfer function Multi-dimensional TFs Data value, gradient magnitude, second derivative Multivariate, i.e. multiple values Implement as dependent texture read, 1D, 2D, 3D texture for TF

Transfer function Multiple scans Color data Multiple variables MRI-T1,T2,PD Cryosection Simulation

Transfer function Problem: How do we interact with a higher dimensional TF? Larger parameter space Unintuitive feature identification Greater demands on user interface

Transfer function Solution: It is a process!! Data set guidance Improved classification Intuitive feature identification

1 “Default” transfer function Initial

1 Probing Initial 2 Explore

1 Initial 2 Explore 3 Specify Transfer function widget Manual Dual-domain interaction Initial 2 Explore 3 Specify

1 Initial 2 Explore 4 Refine 3 Specify Use widgets to tune the transfer function Initial 2 Explore 4 Refine 3 Specify

Interactive 1 Initial 2 Explore 4 Refine 3 Specify Understanding from immediate feedback Initial 2 Explore 4 Refine 3 Specify Interactive

Classification Discrete features Basic functions Direct manipulation widgets V3 slider(s) V2 V1

Guidance Histograms Blue Red Green

Guidance Probing Identify features in transfer function Chapel Hill CT

Guidance Dual-domain interaction Classify features by pointing at them

Refinement Manipulate well defined control points

Transfer function Advantages: Better feature discrimination

Technique Animated transfer function