Presentation is loading. Please wait.

Presentation is loading. Please wait.

Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.

Similar presentations


Presentation on theme: "Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007."— Presentation transcript:

1 Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007

2 2D Contour Display Common method for displaying a result across a surface Contour lines: represent a constant value across the surface 10000 ft 9000 ft 8000 ft Topographic Map Weather Map 2D Contour Lines

3 2D contour (0) Remember bi-linear interpolation p2 p3 p0 p1 P =? p4 p5 To know the value of P, we can first compute p4 and P5 and then linearly interpolate P

4 Iso-contour (1) Consider a simple case: one cell data set The problem of extracting an iso-contour is an inverse of value interpolation. That is: p2 p3 p0 p1 Given f(p0)=v0, f(p1)=v1, f(p2)=v2, f(p3)=v3 Find the point(s) P within the cell that have values F(p) = C

5 Iso-contour (2) p2 p3 p0 p1 We can solve the problem based on linear interpolation (1) Identify edges that contain points P that have value f(P) = C (2) Calculate the positions of P (3) Connect the points with lines

6 Iso-contouring – Step 1 (1) Identify edges that contain points P that have value f(P) = C v1v2 If v1 < C < v2 then the edge contains such a point

7 Iso-contouring – Step 2 (2) Calculate the position of P Use linear interpolation: P = P1 + (C-v1)/(v2-v1) * (P2 – P1) v1v2 Pp1 p2 C

8 Iso-contouring – Step 3 p2 p3 p0 p1 Connect the points with line(s) Based on the principle of linear variation, all the points on the line have values equal C

9 Cases of 2D Cells (Squares)                           case 0 case 1 case 2 case 3case 4 case 5 case 6 case 7 case 8 case 9 case 10 case 11 case 12 case 13 case 14 case 15 By complementary and rotational symmetries, the number of the basic cases is reduced to 4     

10 Inside or Outside? Just a naming convention 1.If a value is smaller than the iso-value, we call it “Inside” 2.If a value is greater than the iso-value, we call it “Outside” p2 p3 p0 p1 - + outside cell p2 p3 p0 p1 - inside cell

11 3D Iso-surface Example

12 How many cases for 3D? Now we have 8 vertices So it is: 2 = 256 8 How many unique topological cases?

13 Case Reduction (1) Value Symmetry + + __ _ _ _ _ + + _ _ + + + +

14 Case Reduction (2) Rotation Symmetry + + __ _ _ _ _ _ _ + + _ _ _ _ By inspection, we can reduce 256 14

15 Iso-surface Cases Total number of cases: 14 + 1

16 Marching Cubes Algorithm(1) A Divide-and-Conquer Algorithm v1 v2 v3v4 v5 v6 v7v8 Vi is ‘1’ or ‘0’ (one bit) 1: > C; 0: <C (C= iso-value) Each cell has an index mapped to a value ranged [0,255] Index = v8 v7 v6 v5 v4 v3 v2 v1

17 Marching Cubes (2) Given the index for each cell, a table lookup is performed to identify the edges that has intersections with the iso-surface 0 1 2 3 14 e1, e3, e5 … Index intersection edges e1 e2 e3 e4 e5 e6 e7 e8 e9e10 e11 e12 Pre-defined look-up table enumerates a)how many triangles will make up the isosurface segment passing through the cube b)which edges of the cubes contain vertices of triangles, and in what order

18 Marching Cubes (3) + + + + _ _ _ _ Perform linear interpolations at the edges to calculate the intersection points Connect the points

19 Interpolation of Triangle Vertices For each triangle, find an vertex location along the edge using linear interpolation of the values at the edge’s two end points where   10 40 0 30 1020 t3 = t8 = t4 = t3 t4 t8 Vertices of triangle a

20 Why is it called marching cubes? Linear search through cells Row by row, layer by layer Reuse the interpolated points for adjacent cells

21 Steps in Marching Cubes Select a cell Classify the inside/outside state of each vertex Create an index Get edge list from table Interpolate the edge location Go to the next cell

22 Marching Cubes at various Isovalues www.erc.msstate.edu

23 Dividing Cubes Algorithm Generate isosurface using dense cloud points Use point primitive instead of triangles in MC Conditions:  Large number of points  Density of points>= screen resolution  Lighting and shading calculation H. Cline, W. Lorensen, S. Ludke, C. Crawford, and B. Teeter, “Two algorithms for the three-dimesnional reconstruction of tomographs” Medical Physics, vol. 15, no. 3, May 1988

24 Find Intersecting Voxel Select a voxel (cell) and determine whether the isosurface passes through it  Whether there are scalar values at vertices both above and below the iso-value    Inside isosurface

25 Subdivide Voxel The voxel is subdivided into a regular grid of n1  n2  n3 subvoxels ni = wi /R, where R is screen resolution and wi is width of the voxel z y x n2n2 n3n3 n1n1

26 Generate Points Scalar values at the subpoints are generated using the interpolation function Find whether the isosurface passes through each sub-voxel If it does, generate a point at the center of the subvoxel and compute its normal Collection of all such points compose the Dividing Cubes’ isosurface 

27 Recursive Implementation Recursively divide the voxel as in octree decomposition Scalar values at the new points are interpolated Process repeats for each sub-voxel if the isosurface passes through it This process continues until the size of the subvoxel =< R A point is generated at the center of the sub-voxel Hierarchy of spatial subdivisions to form an octree

28 Dividing Squares’ Contour     

29 Dividing Cubes’ Image Image of human head Image with voxel subdivision into 4x4x4 cubes www.cs.umbc.edu

30 Iso-surface cells: cells that contain iso- surface. min < iso-value < max Marching cubes algorithm performs a linear search to locate the iso-surface cells – not very efficient for large-scale data sets. Iso-surface cell search

31 Iso-surface Cells For a given iso-value, only a smaller portion of cells are iso-surface cell. For a volume with n x n x n cells, the average number of the iso-surface cells is O(n x n) (ratio of surface v.s. volume) n n n

32 Efficient iso-surface cell search Problem statement: Given a scalar field with N cells, c 1, c 2, …, c n, with min-max ranges (a 1,b 1 ), (a 2,b 2 ), …, (a n, b n ) Find {C k | a k < C < b k ; C=iso-value}

33 Efficient search methods 1. Spatial subdivision (domain search) 2. Value subdivision (range search) 3. Contour propagation

34 Domain search Subdivide the space into several sub-domains, check the min/max values for each sub-domain If the min/max values (extreme values) do not contain the iso-value, we skip the entire region Min/max Complexity = O(Klog(n/k))

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

36 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 Max Min M5 M2 M6 M4 M1 M3 M7 M8 M11 M10 M9 m5 m1 m6 m3 m8 m7 m2 m9 m11 m4 m10 G1 G2 Isosurface cells = G1 G2

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

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

39 Interval Tree II I left I right …… I  cells that have min <  max I left: cells that have max <  I right: cells that have min >  Now, given an isovalue C 1)If C <  2)If C >  3) If C =  Complexity = O(log(n)+k) Optimal!!

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

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

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

43 Solutions (1)Extrema Graph (Itoh vis’95) (2)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 iso-value 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.

44 Ambiguity !

45 2D Ambiguous Cases Ambiguous cases:  5, 10 Contour ambiguity arises when adjacent vertices in different states but diagonal vertices in the same state Break contour Join contour Both are valid     or     Break contour (two loops) Join contour (single loop)

46 3D Ambiguity Problem Certain Marching Cube cases have more than one possible triangulation Case 6 Case 3 Mismatch!!! + + + + Hole!

47 3D Ambiguous Cases Ambiguous cases:  3, 6, 7, 10, 12, 13 Adjacent vertices in different states, but diagonal vertices in the same state Ambiguity cases may cause holes         hole case 3case 6c Isosurface polygons are disjoint across the common element surface

48 The Problem Ambiguous Face: a face that has two diagonally opposing points with the same sign + + Connecting either way is possible

49 To fix it … Case 6 Case 3 B Match!!! + + + + The goal is to come up with a consistent triangulation

50 Solutions There are many solutions available – we present a method called: Asymptotic Decider by Nielson and Hamann (IEEE Vis’91)

51 Asymptotic Decider Based on bilinear interpolation over faces B01 B00B10 B11 (s,t) B(s,t) = (1-s, s) B00 B01 B10 B11 1-t t The contour curves of B: {(s,t) | B(s,t) =  } are hyperbolas

52 Asymptotic Decider (2) (0,0) (1,1) Where the hyperbolas go through the cell depends on the values at the corners, I.e., B00, B01, B10, B11

53 Asymptotic Decider (3) (0,0) (1,1) Asymptote (S  T  If  B(S  T 

54 Asymptotic Decider (4) (1,1) Asymptote (S  T  (0,0) If  B(S  T 

55 Asymptotic Decider (5) (1,1) (S  T  (0,0) S  B00 - B01 B00 + B11 – B01 – B10 T  B00 – B10 B00 + B11 – B01 – B10 B(S  T  B00 B11 + B10 B01 B00 + B11 – B01 – B10

56 Asymptotic Decider (6) Based on the result of asymptotic decider, we expand the marching cube case 3, 6, 12, 10, 7, 13 (These are the cases with at least one ambiguious faces).

57 References This set of slides are developed from the lecture slides used by Prof. Han-Wei Shen at Ohio State University, Also from Prof. Karki at Louisiana State University


Download ppt "Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007."

Similar presentations


Ads by Google