Fast Isocontouring For Improved Interactivity Chandrajit L. Bajaj Valerio Pascucci Daniel R. Schikore.

Slides:



Advertisements
Similar presentations
13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets.
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Spatial Indexing SAMs. Spatial Indexing Point Access Methods can index only points. What about regions? Z-ordering and quadtrees Use the transformation.
Advanced Iso-Surfacing Algorithms Jian Huang, CS594, Spring 2002 This set of slides are developed and used by Prof. Han-Wei Shen at Ohio State University.
Greedy Algorithms Greed is good. (Some of the time)
Data Mining Cluster Analysis: Basic Concepts and Algorithms
Volume Graphics (lecture 5 : Contour Tree / Contour Spectrum) lecture notes acknowledgement : J. Snoeyink, C. Bajaj Bong-Soo Sohn School of Computer Science.
Label Placement and graph drawing Imo Lieberwerth.
Topology-Based Analysis of Time-Varying Data Scalar data is often used in scientific data to represent the distribution of a particular value of interest,
Chapter 6: Transform and Conquer
Ruslana Mys Delaunay Triangulation Delaunay Triangulation (DT)  Introduction  Delaunay-Voronoi based method  Algorithms to compute the convex hull 
Fractional Cascading CSE What is Fractional Cascading anyway? An efficient strategy for dealing with iterative searches that achieves optimal.
Lectures on Network Flows
Heapsort By: Steven Huang. What is a Heapsort? Heapsort is a comparison-based sorting algorithm to create a sorted array (or list) Part of the selection.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
Experiences with Streaming Construction of SAH KD Trees Stefan Popov, Johannes Günther, Hans-Peter Seidel, Philipp Slusallek.
lecture 4 : Isosurface Extraction
Lecture 12 : Special Case of Hidden-Line-Elimination Computational Geometry Prof. Dr. Th. Ottmann 1 Special Cases of the Hidden Line Elimination Problem.
Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.
Graphs & Graph Algorithms 2 Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
Course Review COMP171 Spring Hashing / Slide 2 Elementary Data Structures * Linked lists n Types: singular, doubly, circular n Operations: insert,
Randomized Planning for Short Inspection Paths Tim Danner Lydia E. Kavraki Department of Computer Science Rice University.
Automatic Isosurface Propagation Using an Extrema Graph and Sorted Boundary Cell Lists.
Feature Subset Selection using Minimum Cost Spanning Trees Mike Farah Supervisor: Dr. Sid Ray.
Homework #3 Due Thursday, April 17 Problems: –Chapter 11: 11.6, –Chapter 12: 12.1, 12.2, 12.3, 12.4, 12.5, 12.7.
L o g o Jieyi Long, Hai Zhou, and Seda Ogrenci Memik Dept. of EECS, Northwestern Univ. An O(nlogn) Edge-Based Algorithm for Obstacle- Avoiding Rectilinear.
Graphs & Graph Algorithms 2 Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Assembly Planning “A Framework for Geometric Reasoning About Tools in Assembly” Randall H. Wilson Presentation by Adit Koolwal & Julie Letchner.
C o n f i d e n t i a l HOME NEXT Subject Name: Data Structure Using C Unit Title: Graphs.
Contour Trees CSE Han-Wei Shen. Level Sets Level set: Level sets is also called Isolines for n=2, isosurface for n=3, or isocontours in general.
Isosurface Extractions 2D Isocontour 3D Isosurface.
Lecture 4 : Isosurface Extraction (Advanced Topics)
Algorithms: Design and Analysis Summer School 2013 at VIASM: Random Structures and Algorithms Lecture 3: Greedy algorithms Phan Th ị Hà D ươ ng 1.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
CS654: Digital Image Analysis Lecture 3: Data Structure for Image Analysis.
Unstructured Volume Rendering Jian Huang, CS 594, Spring 2002 This set of slides reference slides developed by Prof. Torsten Moeller, SFU, Canada.
Data Structures & Algorithms Graphs
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Ver Chapter 13: Graphs Data Abstraction & Problem Solving with C++
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
© 2006 Pearson Addison-Wesley. All rights reserved 14 A-1 Chapter 14 Graphs.
and 6.855J March 6, 2003 Maximum Flows 2. 2 Network Reliability u Communication Network u What is the maximum number of arc disjoint paths from.
Lecture 3 : Isosurface Extraction. Isosurface Definition  Isosurface (i.e. Level Set ) :  Constant density surface from a 3D array of data  C(w) =
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Lecture 12 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Lecture 20. Graphs and network models 1. Recap Binary search tree is a special binary tree which is designed to make the search of elements or keys in.
CPS120: Introduction to Computer Science Sorting.
3. Polygon Triangulation
CSE 554 Lecture 5: Contouring (faster)
Computation of the solutions of nonlinear polynomial systems
Proof technique (pigeonhole principle)
Isosurface Extractions (II)
Contour Propagation Basic Idea:
Lectures on Network Flows
3D Object Representations
Lecture 12 Algorithm Analysis
Minimum Spanning Tree.
Graphs & Graph Algorithms 2
Multi-Way Search Trees
Lectures on Graph Algorithms: searching, testing and sorting
Chapter 6: Transform and Conquer
Lecture 12 Algorithm Analysis
Lecture 12 Algorithm Analysis
CO4301 – Advanced Games Development Week 4 Binary Search Trees
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
INTRODUCTION A graph G=(V,E) consists of a finite non empty set of vertices V , and a finite set of edges E which connect pairs of vertices .
Presentation transcript:

Fast Isocontouring For Improved Interactivity Chandrajit L. Bajaj Valerio Pascucci Daniel R. Schikore

Introduction ► A preprocessing step selects a subset S of the volume cells which are considered as seed cells. ► Given a particular isovalue, all cells in S which intersect the given isocontour are extracted using a high performance range search. ► Keyword: range search

Introduction ► Unstructured volume data ► Isocontours C={ x | F (x)=w }  w: isovalue ► The average number of cells intersected by an isocontour will be for a d-dimensional domain. ► Data structure  Interval tree

Algorithm Overview (1/3) ► Three know techniques  The extraction of an isocontour does not require searching all the cells of the mesh.  To improve the efficiency of the cell extraction, it is necessary to define a search structure over the set of cells.  The search space we need to work on is the two dimensional span space.

Algorithm Overview (2/3) ► Exploiting above three main ideas we get the following isocontouring algorithm.  Preprocessing A Reduce the set of cells to a subset S that encompasses at least one cell per connected component of each isocontour.  Preprocessing B Construct an efficient search structure over the cells in the set S.

Algorithm Overview (3/3)  Step 1 Given the scalar value w, perform a logarithmic search on the set S to find all the cells in S which intersect the isocontour of value w.  Step 2 For each cell c found in step 1, trace the entire connected component of the isocontour intersected by c. (contour propagation)  Time complexity:

Contour Propagation ► Advantage  Surfaces are easily transformed into a triangle strip representation for more efficient rendering.

Cell Connectivity (1/5) ► Connectivity Graph  interval of cell ► R(c) = [min,max]  connecting interval ► R(f) = [min ’,max ’ ]  R(c1)  R(c2) C1 C2 R(C1)=[30,60] R(C2)=[40,70] R(f 12 )=[40,60]

Cell Connectivity (2/5) ► Based on the above information, we construct a labeled graph G C1 C2 R(C1)=[30,60] R(C2)=[40,70] R(f 12 )=[40,60] C1C2 f 12

Cell Connectivity (3/5) ► All cells which intersect the same connected component of a contour of isovalue w we call w - connected.

Cell Connectivity (4/5) ► Definition 1  Consider a scalar value w and two nodes c 1, c 2 of G. c 1 and c 2 are said to be w – connected if one of the two following conditions holds. (a) c 1 and c 2 are connected by an arc f such that w  R( f ). (b) There exists a node c 3 that is w - connected to both c 1 and c 2. C1C2 f 12 R(f 12 )=[40,60] C3 f 23 R(f 23 )=[45,65] W=50

Cell Connectivity (5/5) ► Definition 2  Consider a subset S of the nodes of G and a node c  G. The node c is connected to S if. For any w  R(c), there exists a node c ’  S that is w -connected to c. S G c c’c’

Seed Sets (1/8) ► ► The seed sets are important because any isocontour of the entire original mesh can be traced by propagating from the cells of any seed set. ► Definition 3  A subset S of the nodes of G is a seed set of G if all the nodes of G are connected to S.

Seed Sets (2/8) ► w ► If we wish to determine quickly all the cells of a mesh whose range contains a particular scalar value w, we can proceed as follows:  Search for all the nodes c  S such that w  R(c) ;  Starting from the nodes we have found and using the w -connectivity relation on the graph G, we find the cells of the mesh whose range contains w.

Seed Sets (3/8) ► To reduce the search time we need to reduce the cardinality of the seed set S as much as possible. ► Property 1  If S is a seed set and c  S is a cell connected to S - {c}, then S - {c} is a seed set.  Proof: from definition 1 (b)

Seed Sets (4/8) ► we wish to find a small seed set ► initial  starting with the entire set of the cells – that is the largest seed set ► repeated  keep removing until we achieve a minimal seed set.

Seed Sets (5/8) ► At each step, we remove the selected cell c along with all its incident arcs and add some new arcs between pairs of cells that were connected to c. ► This new arc f needs to be inserted if C1 C

Seed Sets (6/8) ► If above condition is true, then the new arc is added with label ► We can remove a cell c of the current seed set if :  where f 1, ……, f k are all the arcs incident to the cell c in the reduced graph of the current seed set.

Seed Sets (7/8) ► Example: B A C D E A  E B  E D  E C  E

Seed Sets (8/8) The sweep hyperplane is a line parallel to the y direction moving along the x direction.

Interval Tree In an interval tree, each node holds a split value s, and each interval is classified as less than (max s), or spanning (min < s < max). With each node, the intervals are sorted into two lists. Store time complexity: O(N) Search time complexity: O(logN)

Conclusions (1/3) Result of seed selection technique

Conclusions (2/3)

Conclusions (3/3) Evident from the plot is that our algorithm provides the greatest speedup when the surface of interest is small compared to the volume.