Volume Graphics (lecture 4 : Isosurface Extraction)

15
Volume Graphics (lecture 4 : Isosurface Extraction) Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University

description

Volume Graphics (lecture 4 : Isosurface Extraction). Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University. 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 - PowerPoint PPT Presentation

Transcript of Volume Graphics (lecture 4 : Isosurface Extraction)

Page 1: Volume Graphics (lecture 4 : Isosurface Extraction)

Volume Graphics(lecture 4 : Isosurface Extraction)

Bong-Soo Sohn

School of Computer Science and Engineering

Chung-Ang University

Page 2: Volume Graphics (lecture 4 : Isosurface Extraction)

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: Volume Graphics (lecture 4 : Isosurface Extraction)

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: Volume Graphics (lecture 4 : Isosurface Extraction)

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: Volume Graphics (lecture 4 : Isosurface Extraction)

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: Volume Graphics (lecture 4 : Isosurface Extraction)

Surface Intersection in a Cube

• There are 28=256 ways the surface may intersect the cube

• Triangulate each case

Page 7: Volume Graphics (lecture 4 : Isosurface Extraction)

Patterns

• Note:– using the symmetries reduces those 256

cases to 15 patterns

Page 8: Volume Graphics (lecture 4 : Isosurface Extraction)

15 Cases

Page 9: Volume Graphics (lecture 4 : Isosurface Extraction)

Surface intersection in a cube

• Create an index for each case:

• Interpolate surface intersection along each edge

Page 10: Volume Graphics (lecture 4 : Isosurface Extraction)

Calculating normals

• Calculate normal for each cube vertex:

• Interpolate the normals at

the vertices of the triangles:

Page 11: Volume Graphics (lecture 4 : Isosurface Extraction)

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: Volume Graphics (lecture 4 : Isosurface Extraction)

Ambiguity Problem

Page 13: Volume Graphics (lecture 4 : Isosurface Extraction)

Trilinear Function

• Trilinear Function

• Saddle point– Face saddle– Body saddle

Page 14: Volume Graphics (lecture 4 : Isosurface Extraction)

Trilinear Isosurface Topology

Page 15: Volume Graphics (lecture 4 : Isosurface Extraction)

Triangulation