Shear-Warp Volume Rendering. Volume Rendering Overview

Similar documents
Fast Volume Rendering Using a Shear-Warp Factorization of the Viewing Transformation

Marc Levoy Computer Science Department Stanford University. Philippe Lacroute Computer Systems Laboratory Stanford University

Direct Volume Rendering

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

Aspects of 3-D Seismic Data Volume Rendering

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

Direct Volume Rendering

Volume Rendering. Lecture 21

Direct Volume Rendering. Overview

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

Direct Volume Rendering

Splatting (feed-forward) Fill the holes. Process for volume rendering. Footprint Evaluation for Volume Rendering. Feed Backward vs.

Raycasting. Ronald Peikert SciVis Raycasting 3-1

A SURVEY ON 3D RENDERING METHODS FOR MRI IMAGES

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

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

First Steps in Hardware Two-Level Volume Rendering

University of West Bohemia in Pilsen Faculty of Applied Sciences Department of Computer Science and Engineering DIPLOMA THESIS

Computational Strategies

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

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

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

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

Accelerating Geometric Queries. Computer Graphics CMU /15-662, Fall 2016

A Survey of Volumetric Visualization Techniques for Medical Images

Shear-Warp Volume Rendering Algorithms Using Linear Level Octree for PC-Based Medical Simulation

Volume Visualization

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007

CSL 859: Advanced Computer Graphics. Dept of Computer Sc. & Engg. IIT Delhi

CIS 467/602-01: Data Visualization

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 (DSC 530/CIS )

Data Visualization (CIS/DSC 468)

Applications of Explicit Early-Z Culling

Last Time: Acceleration Data Structures for Ray Tracing. Schedule. Today. Shadows & Light Sources. Shadows

Real-Time Voxelization for Global Illumination

CEng 477 Introduction to Computer Graphics Fall 2007

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Intersection Acceleration

Fast Visualization of Object Contours by Non-Photorealistic Volume Rendering

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

Course Review. Computer Animation and Visualisation. Taku Komura

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

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

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Data Visualization (DSC 530/CIS )

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

Theoretically Perfect Sensor

Computer Graphics. Bing-Yu Chen National Taiwan University

Ray Tracing Acceleration Data Structures

Parallel Physically Based Path-tracing and Shading Part 3 of 2. CIS565 Fall 2012 University of Pennsylvania by Yining Karl Li

Volume Illumination & Vector Field Visualisation

Geometric Representations. Stelian Coros

Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

byte offset LUT bit offset

Theoretically Perfect Sensor

Design of a Parallel Accelerator for Volume Rendering

CHAPTER 1 Graphics Systems and Models 3

Indirect Volume Rendering

Spatial Data Structures

Volume Illumination and Segmentation

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

Visible Surface Detection Methods

CS559: Computer Graphics. Lecture 12: Antialiasing & Visibility Li Zhang Spring 2008

Spatial Data Structures

Advanced Ray Tracing

Ray Genealogy. Raytracing: Performance. Bounding Volumes. Bounding Volume. Acceleration Classification. Acceleration Classification

Efficient Volumetric Ray Casting for Isosurface Rendering

Previously... contour or image rendering in 2D

Ray-tracing Acceleration. Acceleration Data Structures for Ray Tracing. Shadows. Shadows & Light Sources. Antialiasing Supersampling.

Spatial Data Structures

Spatial Data Structures

Michael Wimmer, Daniel Scherzer and Werner Purgathofer. Presentation by: Nikolas Rodarakis, Stavros Tsikinas

5. Volume Visualization

Point based Rendering

Werner Purgathofer

GPU-Accelerated Deep Shadow Maps for Direct Volume Rendering

Computer Graphics. Texture Filtering & Sampling Theory. Hendrik Lensch. Computer Graphics WS07/08 Texturing

Spatial Data Structures

Image warping introduction

Solid Modeling. Thomas Funkhouser Princeton University C0S 426, Fall Represent solid interiors of objects

Spatial Data Structures and Speed-Up Techniques. Tomas Akenine-Möller Department of Computer Engineering Chalmers University of Technology

Forward Image Mapping

Lecture 25 of 41. Spatial Sorting: Binary Space Partitioning Quadtrees & Octrees

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CPSC GLOBAL ILLUMINATION

A Model to Evaluate Ray Tracing Hierarchies

Lecture 4: Image Processing

CS559 Computer Graphics Fall 2015

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

Multiview Reconstruction

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

The Traditional Graphics Pipeline

Using image data warping for adaptive compression

Data Visualization (CIS/DSC 468)

Isosurface Rendering. CSC 7443: Scientific Information Visualization

kd-trees for Volume Ray-Casting

Transcription:

Shear-Warp Volume Rendering R. Daniel Bergeron Department of Computer Science University of New Hampshire Durham, NH 03824 From: Lacroute and Levoy, Fast Volume Rendering Using a Shear-Warp- Factorization of the Viewing Transformation, Siggraph 94 1 Volume Rendering Overview Spatial data structures can lower costs without sacrificing quality e.g., octrees, k-d trees, distance trees Image-order algorithms casting rays through pixels traverse spatial d.s. for every ray; multiple traversals Object-order algorithms splatting process data once, but hard to terminate processing early Shear-warp algorithms efficient data traversal with possibility of early exit 2

Shear-Warp: Parallel Projection Sheared object space simple transformation of volume allowing efficient projection in this space all viewing rays are parallel to a coordinate axis Parallel projection: Viewing rays Shear Volume slices Project Image plane 3 Shear-Warp: Perspective Projection Perspective projection more complex requires each slice to be scaled based on the view Perspective projection: Viewing rays Shear and scale Volume slices Project Image plane 4

Basic Algorithm Determine which of 3 possible slicing directions to use (P). 1. Transform volume data to sheared object space by translating and resampling each slice (S). 2. Composite resampled slices in front-to-back order. This produces a 2D intermediate image in sheared object space. 3. Transform intermediate image to image space by warping ( M warp ). This is a 2d resampling step. 1. Shear / resample Intermediate image scanline 3. warp/resample Voxel scanline 2. project/composite Image 5 Shear-Warp Factorization Shear-Warp can be expressed as factorization of the view transform matrix: M view = M warp2d M shear3d = M warp2d S P P permutes axes that so shear is parallel to slices that are most perpendicular to viewing direction S is shear whose terms can be extracted from M view & 1 0 sx 0# & 1 0 sx 0# $ 0 1 s 0 $ y 0 1 s y 0 S $ par = S $ per = $ 0 0 1 0 $ 0 0 1 0 $ % 0 0 0 1 $ " % 0 0 sw 1" M warp2d transforms sheared object coords to image coords: M warp2d = M view P -1 S -1 6

Shear-Warp Properties Projection in sheared object space has properties that allow more efficient compositing: 1. Scanlines in intermediate space are parallel to volume scanlines 2. All voxels in a given slice are scaled by same factor. 3. For parallel projections: every slice has same scale factor and that is arbitrary. Usually choose 1, so get 1-1 mapping of voxels to intermediate image pixels. Lacroute and Levoy describe 3 different rendering algorithms based on Shear-Warp. 7 Parallel Projection Rendering 1 Parallel view allows run-length encoding for data. most data has lots of empty space sheared, resampled volume stored as run-length encoded voxel scanlines, with 2 kinds of runs: transparent and non-transparent, defined by user-specified threshold intermediate image scanline also stores run information: each opaque pixel (based on user threshold) has pointer to next nonopaque pixel in the scanline. Can skip quickly over runs of opaque pixels. Non-opaque pixel Opaque pixel 8

Parallel Projection Rendering 2 For each slice and for each volume scanline Walk through volume scanline and intermed. image use voxel run-length encoding to skip transparent voxels use image encoding to skip occluded voxels voxel scanline intermediate image scanline Unskipped voxel runs can be processed efficiently skip work skip work skip all voxels in slice are scaled by same factors, so resampling to get values at image pixel centers uses same weights: resample and composite 9 Parallel Projection Rendering 3 Use bilinear interp. & backward projection convolution 2 voxel scanlines are traversed simultaneously to produce one intermediate image scanline (intermediate image scanline lies between two voxel scanlines) Use lookup table for shading Use lookup table to correct voxel opacity for view angle apparent slice thickness depends on angle View angle 1 Slice k+1 Slice k View angle 2 10

Parallel Projection Rendering 4 After compositing, need to warp 2D intermediate image to final image use general purpose affine image warper with bilinear filter image is small compared to volume, so this is minor part Run length encoded data structure created on the fly, but it is (nearly) view-independent create 3 encodings, one for each principal view direction because transparent voxels are not stored, size is usually tractable value of P matrix used to select which version to use 11 Perspective Projection Rendering 1 Perspective rays diverge, so uniform sampling is hard ray tracing solutions:» as distance along ray increases, split ray into multiple rays, or» use each sample point to sample larger portion of volume using a mip-map splatting: resampling filter footprint must be recomputed for each voxel shear-warp: adaptive area sampling is part of the algorithm» each slice is scaled differently, so farther slices are smaller and each ray is, in effect, sampling a larger portion of volume as it gets farther away 12

Perspective Projection Rendering 2 Algorithm nearly same as parallel rendering, except each voxel scaled as well as translated during resampling, so» more than 2 voxel scanlines may need to be traversed simultaneously to contribute to the intermediate image scanline, and» voxel scanlines may not be traversed at the same rate as image scanlines choose factors so closest slice has unit scaling (all the rest will have < 1, so no slice will be enlarged) use a box reconstruction filter and a box low-pass filter 13 Fast Classification Algorithm 2 algorithms presented don t allow experimentation with transfer function (it s done in run-length encoding) 3 rd variation keeps the full volume and evaluates opacity transfer while rendering; need to avoid unnecessary computations Key data structures min-max octree: each node stores min/max of all children; built at data loading time; it is not dependent on transfer fcn summed area table: built after transfer fcn defined 3D voxel array 14

Summed Area Table Summed area table developed by Crow (84) for texture mapping entry i,j in summed area table is sum of image entries from 0,0 to i,j can get sum of any rectangle (i, j ) to (i, j ) in the image with 1 1 2 2 sum = sat(i, j ) sat(i, j -1) sat(i -1, j ) + sat(i -1, j -1) 2 2 2 1 1 2 1 1 image 13 14 15 16 9 10 11 12 5 6 7 8 summed area table 28 60 96 136 15 33 54 78 6 14 24 36 1 2 3 4 1 3 6 10 15 Transfer Function Evaluation Opacity transfer function can be of form: α = f( p, q, ) where p might be data value, q the length of the gradient, or whatever. given a threshold, f partitions the multidim space (defined by p,q, ) into transparent/non-transparent regions for region of volume that just contains current scanline 1. find extrema of parameters: min and max of p,q, 2. determine if opacity is transparent throughout the region if so, discard scanline since it is transparent everywhere else if scanline is small enough, render it else subdivide scanline (and region) and recurse 16

Region Transparency Test Min-max octree contains extrema of opacity function parameter values in each node (subcube of volume) For step 2 above, need to integrate f over region of parameter space defined by parameter extrema Build summed area table for opacity function where indexes are discretized values of parameters use pmin, pmax, qmin, qmax to find sum of all possible values of function in the region; if sum is 0, region must be transparent everywhere. if parameters can take on large ranges, need to quantize some or all of the parameters to keep table to manageable size if there are 3 parameters, need 3d summed area table 17 Fast Classification Rendering Algorithm Build min-max octree as preprocessing step; octree is independent of both view and transfer function Just before rendering, build summed area table based on current opacity transfer function Use either parallel or perspective algorithm accessing 3d array of voxels in scanline order for each scanline, use octree and SA table to skip transparent regions for non-transparent regions, classify each voxel via a lookup table and proceed as before. opaque regions of the image still cause voxel processing to be skipped. note that voxel classification never done in transparent volume regions or opaque image regions; that saves computation 18

Fast Classification Limitations Octree traversal and SA table computations add overhead can be reduced by avoiding re-computation: e.g., transparency test for an octree node is computed once on demand, then saved in the tree Opacity transfer function has restrictions parameters must be available and function pre-computable for each voxel in order to build octree domain of parameter space must be manageable context-sensitive segmentation does not satisfy these restrictions If major view axis changes, access to scanlines in the 3d array won t follow storage order. For large volumes get thrashing. can reorder the array, but that causes delay best to use this algorithm only for small range of views; once desired opacity function is defined, switch to one of other algorithms. 19 Performance Results Lacroute/Levoy tested on a modest machine: SGI Indigo R4000 with 64Mbytes and no graphics accelerator 256x256x225 head MRI data set using gray scale Parallel Perspective Fast classification/parallel Avg time (sec) 1.2 3.3 2.8 Memory (Mb) 13 13 61 Color rendering takes about twice as long Ray casting versions were 5 times longer for 128 3 data sets and 10 times longer for 256 3 data sets 20

Image Quality Many images are virtually identical to ray casting. The 2 resampling steps might lead to blurring, but they don t see it. Shear-Warp Ray Casting 21 Other Images 256x256x159: Parallel 2.2 sec 256x256x110: Perspective 3.8 sec 22

Image Quality Problems Shear-warp uses 2d rather than 3d filter to resample volume data. It is 1 st order in plane of slice but 0-order between slices. could be a problem with high frequencies perpendicular to slices; example below classifies with extremely sharp ramps to get high freq. and uses worst possible viewing angle (close to 45 degrees Shear-warp Ray caster Shear-warp w/smoother classification 23