Indirect Volume Rendering

Similar documents
5. Volume Visualization

Isosurface Rendering. CSC 7443: Scientific Information Visualization

CIS 467/602-01: Data Visualization

Contouring and Isosurfaces. Ronald Peikert SciVis Contouring 2-1

CIS 4930/ SCIENTIFICVISUALIZATION

Data Visualization (DSC 530/CIS )

Data Visualization (CIS/DSC 468)

Data Visualization (DSC 530/CIS )

Scalar Algorithms: Contouring

CSC Computer Graphics

Scalar Algorithms -- surfaces

CSE 554 Lecture 5: Contouring (faster)

Scalar Visualization

Topology Preserving Tetrahedral Decomposition of Trilinear Cell

Volume Illumination, Contouring

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

Lecture overview. Visualisatie BMT. Fundamental algorithms. Visualization pipeline. Structural classification - 1. Structural classification - 2

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

ACGV 2008, Lecture 1 Tuesday January 22, 2008

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

Visualization. CSCI 420 Computer Graphics Lecture 26

SURFACE CONSTRUCTION USING TRICOLOR MARCHING CUBES

Iso-surface cell search. Iso-surface Cells. Efficient Searching. Efficient search methods. Efficient iso-surface cell search. Problem statement:

LAPLACIAN MESH SMOOTHING FOR TETRAHEDRA BASED VOLUME VISUALIZATION 1. INTRODUCTION

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

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

Approximation of Isosurface in the Marching Cube: Ambiguity Problem.

A New Approach of Seed-Set Finding for Iso-Surface Extraction

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

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

Level Set Extraction from Gridded 2D and 3D Data

Visualization Computer Graphics I Lecture 20

Volume Visualization

Scientific Visualization. CSC 7443: Scientific Information Visualization

Scalar Field Visualization. Some slices used by Prof. Mike Bailey

AMCS / CS 247 Scientific Visualization Lecture 4: Data Representation, Pt. 1. Markus Hadwiger, KAUST

Scalar Visualization

Scientific Visualization Example exam questions with commented answers

A Survey of Volumetric Visualization Techniques for Medical Images

Kent Academic Repository

Topology Preserving and Controlled Topology Simplifying Multiresolution Isosurface Extraction

Scalar Data. Alark Joshi

The development of Piecewise Continuation on Marching Cubes Kieran Ghataora MENG Computer Science 2012/2013

kd-trees for Volume Ray-Casting

Data Representation in Visualisation

Multi-View Matching & Mesh Generation. Qixing Huang Feb. 13 th 2017

Interactive Isosurface Ray Tracing of Large Octree Volumes

Efficient Volumetric Ray Casting for Isosurface Rendering

Contours & Implicit Modelling 4

Dealing with Massive Volumetric Visualization: Progressive Algorithms and Data Structures

Decimation of 2D Scalar Data with Error Control

Dealing with Massive Volumetric Visualization: Progressive Algorithms and Data Structures

Homework 1: Implicit Surfaces, Collision Detection, & Volumetric Data Structures. Loop Subdivision. Loop Subdivision. Questions/Comments?

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

Geometric Representations. Stelian Coros

Marching Squares Algorithm. Can you summarize the marching squares algorithm based on what we just discussed?

Improving progressive view-dependent isosurface propagation

Introduction to Computer Graphics. Modeling (3) April 27, 2017 Kenshi Takayama

Fast Interactive Region of Interest Selection for Volume Visualization

PSP: Progressive Subdivision Paradigm for Large Scale Visualization

Introduction to Scientific Visualization

Direct Volume Rendering

Discretized Marching Cubes

Spatial Data Structures

CIS 467/602-01: Data Visualization

A Case Study of Isosurface Extraction Algorithm Performance

Contours & Implicit Modelling 1

Direct Volume Rendering

Advanced 3D-Data Structures

Efficient Representation and Extraction of 2-Manifold Isosurfaces Using kd-trees

Fundamental Algorithms and Advanced Data Representations

Computer Graphics Ray Casting. Matthias Teschner

Spatial Data Structures

Spatial Data Structures

3 Data Representation. Data Representation. Department of Computer Science and Engineering 3-1

Surface Construction Analysis using Marching Cubes

03 - Reconstruction. Acknowledgements: Olga Sorkine-Hornung. CSCI-GA Geometric Modeling - Spring 17 - Daniele Panozzo

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

Interactive Visualization of Very Large Medical Datasets using Point-based Rendering

Optimal Iso-Surfaces

Volume Rendering. Lecture 21

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

The Voxel-Sweep: A Boundary-Based Algorithm for Object Segmentation and Connected-Components Detection

Multidimensional Data and Modelling

Takayuki ITOH 3 Yasushi YAMAGUCHI 33 Koji KOYAMADA 3. Tokyo Research Laboratory, IBM Japan 3

Spatial Data Structures

A type-merging algorithm for extracting an isosurface from volumetric data

EXPLOITING DATA COHERENCY IN MULTIPLE DATASET VISUALIZATION

Volume Tracking Using Higher Dimensional Isosurfacing

Spatial Data Structures

Technical Report. Efficient Generation of Iso-Surfaces from Volumetric Radar Data Using Marching Cube Technique

Part I: Theoretical Background and Integration-Based Methods

Using Isosurface Methods for Visualizing the Envelope of a Swept Trivariate Solid

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

Previously... contour or image rendering in 2D

Fairing Scalar Fields by Variational Modeling of Contours

A survey of the marching cubes algorithm

Polygonization of Implicit Surfaces

Visualizer An implicit surface rendering application

Transcription:

Indirect Volume Rendering Visualization Torsten Möller Weiskopf/Machiraju/Möller

Overview Contour tracing Marching cubes Marching tetrahedra Optimization octree-based range query Weiskopf/Machiraju/Möller 2

Readings The Visualization Handbook: Chapter 2 (Accelerated Isosurface Extraction Techniques) The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics Chapter 6.2 (Fundamental Algorithms Scalar Algorithms) Chapter 9.1 (Advanced Algorithms Scalar Algorithms) Weiskopf/Machiraju/Möller 3

Indirect Volume Visualization 2D visualization slice images (MPR) Indirect 3D visualization isosurfaces (SSD) Direct 3D visualization volume rendering (DVR) Weiskopf/Machiraju/Möller 4

Contour Tracing Find isosurfaces from 2D contours Segmentation: find closed contours in 2D slices and represent them as polylines Labeling: identify different structures by means of the isovalue of higher order characteristics Tracing: connect contours representing the same object from adjacent slices and form triangles Rendering: display triangles Choose topological or geometrical reconstruction Problems: Sometimes there are many contours in each slice or there is a high variation between slices Tracing becomes very difficult Weiskopf/Machiraju/Möller 5

Contour Tracing 2 1 Weiskopf/Machiraju/Möller 6

Marching Cubes approximation of the real isosurface by the Marching-Cubes (MC) algorithm [Lorensen, Cline 1987] Works on the original data Approximates the surface by a triangle mesh Surface is found by linear interpolation along cell edges Uses gradients as the normal vectors of the isosurface Efficient computation by means of lookup tables THE standard geometry-based isosurface extraction algorithm Weiskopf/Machiraju/Möller 7

Marching Cubes The core MC algorithm Cell consists of 4(8) pixel (voxel) values: (i+[01], j+[01], k+[01]) 1. Consider a cell 2. Classify each vertex as inside or outside 3. Build an index 4. Get edge list from table[index] 5. Interpolate the edge location 6. Compute gradients 7. Consider ambiguous cases 8. Go to next cell Weiskopf/Machiraju/Möller 8

Marching Cubes Step 1: Consider a cell defined by eight data values (i,j+1,k+1) (i+1,j+1,k+1) (i,j,k+1) (i+1,j,k+1) (i,j+1,k) (i+1,j+1,k) (i,j,k) (i+1,j,k) Weiskopf/Machiraju/Möller 9

Marching Cubes Step 2: Classify each voxel according to whether it lies Outside the surface (value > isosurface value) Inside the surface (value <= isosurface value) 5 10 5 10 Iso=9 8 10 8 8 Iso=7 =inside =outside Weiskopf/Machiraju/Möller 10

Marching Cubes Step 3: Use the binary labeling of each voxel to create an index v4 v8 v3 v7 inside =1 outside=0 11110100 v5 v6 00110000 v1 v2 Index: v1 v2 v3 v4 v5 v6 v7 v8 Weiskopf/Machiraju/Möller 11

Marching Cubes Step 4: For a given index, access an array storing a list of edges All 256 cases can be derived from 1+14=15 base cases due to symmetries Weiskopf/Machiraju/Möller 12

Marching Cubes Step 4 cont.: Get edge list from table Example for Index = 10110001 triangle 1 = e4, e7, e11 triangle 2 = e1, e7, e4 triangle 3 = e1, e6, e7 triangle 4 = e1, e10, e6 e4 e11 e1 e7 e6 e10 Weiskopf/Machiraju/Möller 13

Marching Cubes Step 5: For each triangle edge, find the vertex location along the edge using linear interpolation of the voxel values i i+1 x =10 =0 T=5 x = i + T v i v i+1 v i T=8 Weiskopf/Machiraju/Möller 14

Marching Cubes Step 6: Calculate the normal at each cube vertex (central differences) G x = V x+1,y,z - V x-1,y,z G y = V x,y+1,z - V x,y-1,z G z = V x,y,z+1 - V x,y,z-1 Use linear interpolation to compute the polygon vertex normal (of the isosurface) Weiskopf/Machiraju/Möller 15

Marching Cubes Step 7: Consider ambiguous cases Ambiguous cases: 3, 6, 7, 10, 12, 13 Adjacent vertices: different states Diagonal vertices: same state Resolution: choose one case (the right one!) Weiskopf/Machiraju/Möller 16 or or

Marching Cubes Step 7 cont.: Consider ambiguous cases Asymptotic Decider [Nielson, Hamann 1991] Assume bilinear interpolation within a face Hence isosurface is a hyperbola Compute the point p where the asymptotes meet Sign of S(p) decides the connectivity asymptotes p hyperbolas Weiskopf/Machiraju/Möller 17

Marching Cubes Summary 256 Cases Reduce to 15 cases by symmetry Ambiguity in cases 3, 6, 7, 10, 12, 13 Causes holes if arbitrary choices are made Up to 5 triangles per cube Several isosurfaces Run MC several times Semi-transparency requires spatial sorting Weiskopf/Machiraju/Möller 18

Marching Cubes Examples 3 Isosurfaces 1 Isosurface 2 Isosurfaces Weiskopf/Machiraju/Möller 19

Marching Tetrahedra Marching Tetrahedra Primarily used for unstructured grids Split other cell types into tetrahedra Weiskopf/Machiraju/Möller 20

Marching Tetrahedra Process each tetrahedron similarly to the MC-algorithm, two different cases: A) One and three + (or vice versa) The surface is defined by one triangle B) Two and two + Sectional surface given by a quadrilateral Split it into two triangles using the shorter diagonal Weiskopf/Machiraju/Möller 21

Marching Tetrahedra Properties Fewer cases, i.e. 3 instead of 15 Linear interpolation within cells No problems with consistency between adjacent cells Number of generated triangles might increase considerably compared to the MC algorithm due to splitting into tetrahedra Huge amount of geometric primitives Weiskopf/Machiraju/Möller 22

Octree-Based Isosurface Acceleration of MC Domain search Extraction Octree-based approach [Wilhelms, van Gelder 1992] Spatial hierarchy on grid (tree) Store minimum and maximum scalar values for all children with each node While traversing the octree, skip parts of the tree that cannot contain the specified isovalue Weiskopf/Machiraju/Möller 23

Range Query for Isosurface Acceleration of MC Extraction Data structures based on scalar values (not on domain decomposition) Store minimum and maximum values for each cell in special data structures interval structure for min/max in span space Weiskopf/Machiraju/Möller 24

Range Query for Isosurface Extraction Each point in span space represents one cell with respective min/max values Relevant cells lie in rectangular region in span space Problem: How can all these cells be efficiently found? Weiskopf/Machiraju/Möller 25

Range Query for Isosurface Extraction Optimal isosurface extraction from irregular volume data [Cignoni et al. 1996] Interval tree h different extreme scalar values Balanced tree: height log h Bisecting the discriminating scalar value Node contains Scalar values Sorted intervals AL (ascending left) Sorted (same) intervals DR (descending right) Contains value 7 Weiskopf/Machiraju/Möller 26

Range Query for Isosurface Extraction Optimal isosurface extraction from irregular volume data Running time: O(k + log h) due to Traversal of interval tree: log h (height of the tree) k intervals in the node = number of relevant cells (i.e., output sensitive) Visualization of the interval tree in span space (hierarchy levels of the tree) Weiskopf/Machiraju/Möller 27

Range Query for Isosurface Extraction Variations of the above range query based on interval trees: Near optimal isosurface extraction (NOISE) [Livnat et al. 1996] Isosurfacing in span space with utmost efficiency (ISSUE) [Shen et al. 1996] NOISE Based on span space Kd-tree for span space Worst case running time: O(k + sqrt(n)) with k = number of relevant cells (with isosurface) n = total number of grid cells Weiskopf/Machiraju/Möller 28

Range Query for Isosurface Extraction All range-query algorithms suitable for structured and unstructed grids Weiskopf/Machiraju/Möller 29

Visualization Algorithm Scalability 10 4 Speedup for k ~ n 0.8 PISA 10 3 RTRT NOISE Octree Speedup 10 2 10 1 10 0 10 6 10 7 10 8 10 9 10 10 10 11 MC Visible Woman CT Dataset ~ 1Gb MC - 280s ~ 4.5m PISA -.17s Mac G5, 2Ghz Volume Size Scientific Computing and Imaging Institute, University of Utah