Isosurface Extractions (II)

Slides:



Advertisements
Similar presentations
Interactive Point-based Isosurface Exploration and High-quality Rendering Haitao Zhang Arie Kaufman Stony Brook University V I SV I S
Advertisements

13.1 Vis_2003 Data Visualization Lecture 13 Visualization of Very Large Datasets.
Is the shape below a function? Explain. Find the domain and range.
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
An Array-Based Algorithm for Simultaneous Multidimensional Aggregates By Yihong Zhao, Prasad M. Desphande and Jeffrey F. Naughton Presented by Kia Hall.
Ch2 Data Preprocessing part3 Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2009.
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.
Advanced Data Structures
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
lecture 4 : Isosurface Extraction
Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.
I/O-Algorithms Lars Arge University of Aarhus March 1, 2005.
I/O-Algorithms Lars Arge Spring 2009 March 3, 2009.
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.
Fast Isocontouring For Improved Interactivity Chandrajit L. Bajaj Valerio Pascucci Daniel R. Schikore.
Spatial Indexing I Point Access Methods. Spatial Indexing Point Access Methods (PAMs) vs Spatial Access Methods (SAMs) PAM: index only point data Hierarchical.
Heaps and heapsort COMP171 Fall 2005 Part 2. Sorting III / Slide 2 Heap: array implementation Is it a good idea to store arbitrary.
Spatial Indexing I Point Access Methods. Spatial Indexing Point Access Methods (PAMs) vs Spatial Access Methods (SAMs) PAM: index only point data Hierarchical.
CSE 681 Ray Tracing Implicit Surfaces. CSE 681 Overview Similar to CSG –Combine primitive objects to form complex object Primitives are “density fields”
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.
Orthogonal Range Searching I Range Trees. Range Searching S = set of geometric objects Q = query object Report/Count objects in S that intersect Q Query.
Isosurface Extractions 2D Isocontour 3D Isosurface.
Lecture 4 : Isosurface Extraction (Advanced Topics)
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
Trees for spatial data representation and searching
Brought to you by Max (ICQ: TEL: ) February 5, 2005 Advanced Data Structures Introduction.
14/13/15 CMPS 3130/6130 Computational Geometry Spring 2015 Windowing Carola Wenk CMPS 3130/6130 Computational Geometry.
Télécom 2A – Algo Complexity (1) Time Complexity and the divide and conquer strategy Or : how to measure algorithm run-time And : design efficient algorithms.
Advanced Data Structure Hackson Leung
Chapter 9 (modified) Abstract Data Types and Algorithms Nell Dale John Lewis.
CSE221/ICT221 Analysis and Design of Algorithms CSE221/ICT221 Analysis and Design of Algorithms Analysis of Algorithm using Tree Data Structure Asst.Prof.
Hank Childs, University of Oregon Isosurfacing (Part 3)
Data Structure II So Pak Yeung Outline Review  Array  Sorted Array  Linked List Binary Search Tree Heap Hash Table.
R-Trees: A Dynamic Index Structure For Spatial Searching Antonin Guttman.
Hierarchical Volume Rendering
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.
INTRO TO OPTIMIZATION MATH-415 Numerical Analysis 1.
Chapter 9 Abstract Data Types and Algorithms Nell Dale John Lewis.
CS6045: Advanced Algorithms Data Structures. Dynamic Sets Next few lectures will focus on data structures rather than straight algorithms In particular,
UNC Chapel Hill M. C. Lin Geometric Data Structures Reading: Chapter 10 of the Textbook Driving Applications –Windowing Queries Related Application –Query.
A novel, low-latency algorithm for multiple group-by query optimization Duy-Hung Phan Pietro Michiardi ICDE16.
Artificial Intelligence Solving problems by searching.
Lecture 3: Uninformed Search
CSE 554 Lecture 5: Contouring (faster)
CPS216: Data-intensive Computing Systems
Top 50 Data Structures Interview Questions
Backtracking And Branch And Bound
Contour Propagation Basic Idea:
Collision Detection Spring 2004.
Spatial Indexing I Point Access Methods.
Problem Solving by Searching
Binary and Ternary Search
KD Tree A binary search tree where every node is a
Analysis and design of algorithm
Orthogonal Range Searching and Kd-Trees
K Nearest Neighbor Classification
Iso-Contouring and Level-Sets
Minimum Spanning Tree.
Reporting (1-D) Given a set of points S on the line, preprocess them to build structure that allows efficient queries of the from: Given an interval I=[x1,x2]
Graphs.
Chapter 6: Transform and Conquer
5.2 Section 5.1 – Increasing and Decreasing Functions
การวิเคราะห์และออกแบบขั้นตอนวิธี
Directional consistency Chapter 4
Time Complexity and the divide and conquer strategy
Presentation transcript:

Isosurface Extractions (II) 2D Isocontour 3D Isosurface

Isosurface cell search Isosurfaec cells: cells that contain isosurface. min < isovalue < max Marching cubes algorithm performs a linear search to locate the isosurface cells – not very efficient for large-scale data sets.

Isosurface Cells For a given isovalue, only a smaller portion of cells are isosurface cell. For a volume with n x n x n cells, the average number of the isosurface cells is nxn (ratio of surface v.s. volume) n n n

Efficient isosurface cell search Problem statement: Given a scalar field with N cells, c1, c2, …, cn, with min-max ranges (a1,b1), (a2,b2), …, (an, bn) Find {Ck | ak < C < bk; C=isovalue}

Efficient search methods Spatial subdivision (domain search) Value subdivision (range search) Contour propagation

Domain search Subdivide the space into several subdomains, check the min/max values for each subdomain If the min/max values (extreme values) do not contain the isovalue, we skip the entire region Min/max Complexity = O(Klog(n/k))

Range Search (1) Subdivide the cells based on their min/max ranges Global minimum Global maximum Hierarchically subdivide the cells based on their min/max ranges Isovalue

Range Search (2) Within each subinterval, there are more than one cells To further improve the search speed, we sort them. Sort by what ? Min and Max values G1 Max Min M5 M2 M6 M4 M1 M3 M7 M8 M11 M10 M9 m5 m1 m6 m3 m8 m7 m2 m9 m11 m4 m10 G2 Isosurface cells = G1 G2

Range Search (3) A clean range subdivision is difficult … Difficult to get an optimal speed ?

Range Search (4) Span Space : Instead of treating each cell as a range, we can treat it as a 2D point at (min, max) This space consists of min and max axes is called span space Any problem here?

Span Space What are the isosurface cells? max How to search them? min

Span Space Search (1) With the point representation, subdividing the space is much easier now. Search method 1: K-D tree subdivision (NOISE algorithm) K-d tree: A multi-dimensional version of binary tree Partition the data by alternating between each each of the dimensions at each level of the tree

NOISE Algorithm (K-d tree) Median point Min Construction Max left right ? max up … down … … * One node per cell min

NOISE Algorithm (Query) Median point Min If ( isovalue < root.min ) check the ?? Subtree If (isovalue > root.min) Check the ?? Subtree Don’t forget to check the root ‘s interval as well. Max left right ? up … down … … Complexity = O( N + k)

Span Space Search (2) Search Method (2): ISSUE O(log(N/L)) O(1) Complexity = ? ? O(log(N/L))

… … Back to Range Search Sort all the data points Interval Tree: (x1,x2,x3,x4,…. , xn) Let d = x (mid point) n/2 Id I left I right We use d to divide the cells into three sets Id, I left, and I right Id : cells that have min < d < max I left: cells that have max < d I right: cells that have min > d … …

… … Interval Tree Id I right I left Now, given an isovalue C If C < d If C > d 3) If C = d Id I left I right … … Complexity = O(log(n)+k) Optimal!! Id : cells that have min < d < max I left: cells that have max < d I right: cells that have min > d

Range Search Methods In general, range search methods all are superfast – two order of magnitude faster than the marching cubes algorithm in terms of cell search But they all suffer a common problem … Excessive extra memory requirement!!!

Contour Propagation Basic Idea: Given an initial cell that contains isosurface, the remainder of the isosurface can be found by propagation FIFO Queue A B C C C D …. Initial cell: A Enqueue: B, C Dequeue: B Enqueue: D … A B D C E Breadth-First Search

Challenges Need to know the initial cells! For any given isovalue C, finding the initial cells to start the propagation is almost as hard as finding the isosurface cells. You could do a global search, but …

Solutions Extrema Graph (Itoh vis’95) Seed Sets (Bajaj volvis’96) Problem Statement: Given a scalar field with a cell set G, find a subset S G, such that for any given isovalue C, the set S contains initial cells to start the propagation. We need search through S, but S is usually (hopefully) much smaller than G. We will only talk about extrema graph due to time constraint

Extrema Graph (1)

Extrema Graph (2) Basic Idea: If we find all the local minimum and maximum points (Extrema), and connect them together by straight lines (Arcs), then any closed isocontour is intersect by at leat one of the arcs.

Extrema Graph (3) E1 E2 Extreme Graph: { E, A: E: extrema points A: Arcs conneccts E } a1 a2 a3 E3 E4 a5 An ‘arc’ consists of cells that connect extrema points (we only store min/max of the arc though) a4 E7 a7 E5 a6 E6 E8

Extrema Graph (4) Algorithm: Given an isovalue Search the arcs of the extrema graph (to find the arcs that have min/max contains the isovalue Walk through the cells along each of the arcs to find the seed cells Start to propagate from the seed cells …. There is something more needs to be done…

We are not done yet … What ?! We just mentioned that all the closed isocontours will intersect with the arcs connecting the extrema points How about non-closed isocontours? (or called open isocontours)

Extrema Graph (5) Boundary Cells!! These open isocontours will Contours missed These open isocontours will intersect with ?? cells

Extrema Graph (6) Algorithm (continued) Given an isovalue Search the arcs of the extrema graph (to find the arcs that have min/max contains the isovalue Walk through the cells along each of the arcs to find the seed cells Start to propagate from the seed cells Search the cells along the boundary and find seed cells from there Propagate open isocontours