Lecture 3 : Isosurface Extraction
-
Upload
lawrence-meadows -
Category
Documents
-
view
55 -
download
2
description
Transcript of Lecture 3 : Isosurface Extraction
![Page 1: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/1.jpg)
Lecture 3 : Isosurface Extraction
Bong-Soo Sohn
School of Computer Science and Engineering
Chung-Ang University
![Page 2: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/2.jpg)
Isosurface Definition
• Constant Density Surface from a 3D array of data
• I={X|F(X)=w}– I : isosurface– F : 3D volume– w : isovalue
• Ideal isosurface vs
Discretized (triangularized) isosurface
![Page 3: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/3.jpg)
Introduction
• Idea:– create a triangular mesh that wil approximate the iso-
surface– calculate the normals to the surface at each vertex of
the triangle
• Algorithm:– locate the surface in a cube of eight pixels – calculate normals – march to the next cube
![Page 4: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/4.jpg)
Marching Cubes
• Marching cubes– method for approximating surface
• defined by isovalue α, given by grid data
• Input:– Grid data (set of 2D images)– Threshold value (isovalue) α
• Output:– Triangulated surface that matches isovalue surface of α
![Page 5: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/5.jpg)
Surface Intersection in a Cube
• assign ZERO to vertex outside the surface• assign ONE to vertex inside the surface• Note:
– Surface intersects those cube edges where one vertex is outside and the other inside the surface
![Page 6: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/6.jpg)
Surface Intersection in a Cube
• There are 28=256 ways the surface may intersect the cube
• Triangulate each case
![Page 7: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/7.jpg)
Patterns
• Note:– using the symmetries reduces those 256
cases to 15 patterns
![Page 8: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/8.jpg)
15 Cases
![Page 9: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/9.jpg)
Surface intersection in a cube
• Create an index for each case:
• Interpolate surface intersection along each edge
![Page 10: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/10.jpg)
Calculating normals
• Calculate normal for each cube vertex:
• Interpolate the normals at
the vertices of the triangles:
![Page 11: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/11.jpg)
Summary
• Read four slices into memory• Create a cube from four neighbors on one slice and four
neighbors on the next slice• Calculate an index for the cube• Look up the list of edges from a pre-created table• Find the surface intersection via linear interpolation• Calculate a unit normal at each cube vertex and
interpolate a normal to each triangle vertex• Output the triangle vertices and vertex normals
![Page 12: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/12.jpg)
Ambiguity Problem
![Page 13: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/13.jpg)
Trilinear Function
• Trilinear Function
• Saddle point– Face saddle– Body saddle
![Page 14: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/14.jpg)
Trilinear Isosurface Topology
![Page 15: Lecture 3 : Isosurface Extraction](https://reader036.fdocuments.in/reader036/viewer/2022062301/56813347550346895d9a4061/html5/thumbnails/15.jpg)
Triangulation