Volume Graphics Introduction

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

Volume Rendering. Lecture 21

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

Direct Volume Rendering

First Steps in Hardware Two-Level Volume Rendering

CSE 167: Lecture #17: Volume Rendering. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

GPU-based Volume Rendering. Michal Červeňanský

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

Direct Volume Rendering

CIS 467/602-01: Data Visualization

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

Applications of Explicit Early-Z Culling

Data Visualization (DSC 530/CIS )

Data Visualization (DSC 530/CIS )

Data Visualization (CIS/DSC 468)

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

Real-Time Volume Graphics

lecture 21 volume rendering - blending N layers - OpenGL fog (not on final exam) - transfer functions - rendering level surfaces

Multidimensional Transfer Functions in Volume Rendering of Medical Datasets. Master thesis. Tor Øyvind Fluør

Comparison of High-Speed Ray Casting on GPU

GPU Ray Casting. Ricardo Marques Dep. Informática, Universidade do Minho VICOMTech

Scalar Data. CMPT 467/767 Visualization Torsten Möller. Weiskopf/Machiraju/Möller

Visualization of the Marked Cells of Model Organism

Scalar Data. Alark Joshi

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Volume Visualization

Graphics Hardware. Instructor Stephen J. Guy

Real-time Graphics 10. GPU Volume Graphics

Optical Models of Direct Volume Rendering by Nelson Max

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

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

High-Quality Pre-Integrated Volume Rendering Using Hardware-Accelerated Pixel Shading

UberFlow: A GPU-Based Particle Engine

Rasterization Overview

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

Previously... contour or image rendering in 2D

GPU-Accelerated Deep Shadow Maps

Programming Graphics Hardware

Volume Visualization. Part 1 (out of 3) Volume Data. Where do the data come from? 3D Data Space How are volume data organized?

Data Visualization (CIS/DSC 468)

Lecture 2. Shaders, GLSL and GPGPU

Interactive Methods in Scientific Visualization

Advanced GPU Raycasting

Introduction to 3D Graphics

Introduction to Scientific Visualization

CHAPTER 1 Graphics Systems and Models 3

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

The Rasterization Pipeline

Scanline Rendering 2 1/42

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Spring 2009 Prof. Hyesoon Kim

Volume Ray Casting Neslisah Torosdagli

Direct Rendering of Trimmed NURBS Surfaces

Direct Volume Rendering. Overview

Overview. Direct Volume Rendering. Volume Rendering Integral. Volume Rendering Integral Approximation

Spring 2011 Prof. Hyesoon Kim

A SURVEY ON 3D RENDERING METHODS FOR MRI IMAGES

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

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU

Evolution of GPUs Chris Seitz

Visualization. Images are used to aid in understanding of data. Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [chapter 26]

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

CS4620/5620: Lecture 14 Pipeline

Lecture overview. Visualisatie BMT. Transparency. Transparency. Transparency. Transparency. Transparency Volume rendering Assignment

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

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

Clipping. CSC 7443: Scientific Information Visualization

2.11 Particle Systems

GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering

Direct Volume Rendering

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

Mattan Erez. The University of Texas at Austin

Visualization Computer Graphics I Lecture 20

Height Fields and Contours Scalar Fields Volume Rendering Vector Fields [Angel Ch. 12] April 23, 2002 Frank Pfenning Carnegie Mellon University

Real-Time Voxelization for Global Illumination

Rasterization Computer Graphics I Lecture 14. Scan Conversion Antialiasing Compositing [Angel, Ch , ]

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

A COMPARISON OF GPU BOX-PLANE INTERSECTION ALGORITHMS FOR DIRECT VOLUME RENDERING

CS451Real-time Rendering Pipeline

Textures. Texture coordinates. Introduce one more component to geometry

Volume visualization. Volume visualization. Volume visualization methods. Sources of volume visualization. Sources of volume visualization

3D Rasterization II COS 426

11/1/13. Visualization. Scientific Visualization. Types of Data. Height Field. Contour Curves. Meshes

Visualization. CSCI 420 Computer Graphics Lecture 26

1 Ray Casting. Forward methods The picture shows the basic idea of forward methods. A voxel influences several pixels in the resulting image.

- Rasterization. Geometry. Scan Conversion. Rasterization

Rendering Objects. Need to transform all geometry then

Medical Image Processing: Image Reconstruction and 3D Renderings

Medical Visualization - Volume Rendering. J.-Prof. Dr. Kai Lawonn

Computer Graphics Shadow Algorithms

Basic GPU techniques Josef Pelikán CGG MFF UK Praha.

Controlling GPU-based Volume Rendering using Ray Textures

Pipeline Operations. CS 4620 Lecture 14

Graphics Processing Unit Architecture (GPU Arch)

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

CS 354R: Computer Game Technology

Fast Third-Order Texture Filtering

Cornell University CS 569: Interactive Computer Graphics. Introduction. Lecture 1. [John C. Stone, UIUC] NASA. University of Calgary

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

Transcription:

High-Quality Volume Graphics on Consumer PC Hardware Volume Graphics Introduction Joe Kniss Gordon Kindlmann Markus Hadwiger Christof Rezk-Salama Rüdiger Westermann Motivation (1) Motivation (2) Scientific visualization DVR, iso, shading, mixed mode Applications Medicine Example: CT Angiography 1

Applications Engineering Applications Computational Science Volume Data Continuous scalar field in 3D Discrete volume: voxels Sampling Reconstruction Sampling & Reconstruction Rectilinear 3D grid; scalar values Convolution of samples with reconstruction filter (box, tent, ) box sinc tent Surface extraction Extract Geometry, then render Without shadows With shadows Direct Volume Rendering Render volume without extracting any surfaces (DVR) Map scalar values to optical properties (color, opacity) Need optical model Solve volume rendering integral for viewing rays into the volume 2

Optical Models (1) Emission Absorption active active scattering scattering Optical Models (2) Light interaction with density volume of particles Absorption only Emission only Absorption + emission Scattering + shading/shadowing Multiple scattering Ray Casting Numerical approximation of volume rendering integral Resample volume at equi-spaced intervals along the ray Tri-linear interpolation Integration What must be integrated? physically correct: emission and absorption of light I(s Ray 0 ) s 0 s Absorption along the distance s 0 - s Optical Depth τ Initial intensity Absorption к (Emission) at s 0 Integration What must be integrated? physically correct: emission and absorption of light I(s 0 ) s 0 ~ q(s) ~ s Active Emission at s ~ s Ray Absorption along ~ the distance s - s Discrete Solution Resample the scalar field at discrete locations along the viewing ray: T(s) T(s) Back-to-front Compositing with Ray 3

Alpha Blending Numerical approximation of volume rendering integral Back-to-front compositing Classification How do I obtain the emission values and Absorption values? scalar value s New composited color is color at current location blended with previous composited color Opacity-weighted colors! T(s) emission RGB absorption A Alternative Compositing Maximum Intensity Projection (MIP) no Emission and Absorption pixel value is the maximum scalar value along the viewing ray Maximum Intensity Projection Maximum S max Scalar value S s 0 s Strahl Advantage: transfer function not required! Drawback: misleading depth information! Emission/Absorption Maximum Intensity Proj. Volume Graphics on GPUs Texture-Based Methods Ray Casting Numerical approximation of volume rendering integral Resample volume at equi-spaced intervals along the ray Tri-linear interpolation 4

Introduction Data Set Proxy Geometry Image Texture-Based Methods Proxy Geometry 2D textured slices 3D textured slices 2D slice interpolation Volume Renderer Components Setup and texture download Fragment shader and blending setup Proxy geometry rendering Volume Rendering Pipeline Slice Decomposition (Proxy Geometry) Rendering of textures slices Final Image Geometry Processing No volumetric hardware primitives! Geometry Processing Rasterization Proxy Geometry (Polygonal Slices) Fragment Operations Trilinear Hardware Interpolation Compositing (Blending) 2D Textures Bilinear Interpolation in Hardware Axis-aligned slices 2D Textures: Drawbacks Bilinear instead of trilinear interpolation 3 copies of the data set in memory! 5

2D Textures: Drawbacks Inconsistent sampling rate d d d 2D Textures: Drawbacks Select slice stack for viewpoint Locations of sampling points may change abruptly! Emission/Absorbtion incorrect Supersampling not possible! Stack switches are noticeable Better: 3D Texturen Trilinear Interpolation in Hardware Viewport aligned slices Advantages: consistent sampling rate (except for perspective projection) d d Volume is one texture block in memory Supersampling by increasing the number of slices Bricking Dataset is too large to fit into local video memory Subdivide the data into Smaller chunks (bricks) Bottleneck: Bus-Bandwidth Bandwidth Bad load balancing for GPU and Bus GPU Bus Load Brick Draw Load Brick Draw Time Bricking Possible Solutions Keep the bricks small enough! More than one brick must fit into local video memory! Texture transfer and rendering must tbe performed din parallel. l Higher CPU load for slice decomposition! Effective load balancing is still difficult! Alternative: Use 2D multi-textures instead of 3D textures! 6

Compositing Fragment Operations: Compositing Ray Integration Ray Geometry Processing Rasterization Fragment Operations Back-to-front Compositing Alpha Test DISABLED Stencil Test DISABLED Fragments Depth Test ENABLED Alpha Blending ENABLED Alpha Blending glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); Compositing Maximum Intensity Projections OpenGL Extension: GL_EXT_blend_minmax Alpha Blending: Maximum Operator Compositing glenable(gl_blend); #if fdefined dgl_ext_blend_minmax glblendequationext(gl_max_ext); glblendfunc(gl_src_color, GL_DST_COLOR); #endif // GL_EXT_blend_minmax Emission/Absorption Maximum Intensity Proj. Opacity Correction Sampling distance depends on slice distance: adjust integration May depend on viewing direction (2D-textured slices) Texture Definition Volume textures Palette indices (pre-class.) Intensity texture (post-class.) Transfer function tables Texture palette Transfer function texture (1D, ) Pre-integration texture (2D) 7

Per-Volume Setup Fragment shader configuration Transfer function application, shading, slice interpolation, Blending mode configuration Final conversion fragment pixel Texture unit configuration (3D) When view-aligned slices are used All slices use the same texture Fragment Shader Config (1) NVIDIA GeForce 3/4 Fragment Shader Config (2) ATI Radeon 8500 Per-Slice Setup Texture unit configuration (2D) When object-aligned slices are used Each slice uses different texture Slice interpolation needs two adjacent slice textures Fractional position between slices for slice interpolation Generate Fragments Render proxy geometry Submit slices in back-to-front order 2D textured slices Align slices with volume Specify texcoords for each slice 3D textured slices Align slices with viewport Use automatic texcoord generation 8