adaptive marching cubes renben shu chen zhou mohan s. kankanhalli
Post on 22-Dec-2015
243 views
TRANSCRIPT
Adaptive Marching Adaptive Marching CubesCubes
Renben ShuRenben ShuChen ZhouChen Zhou
Mohan S. KankanhalliMohan S. Kankanhalli
IntroductionIntroduction
►We present an adaptive version of We present an adaptive version of marching cubes (MC) called marching cubes (MC) called adaptive adaptive marching cubesmarching cubes (AMC). (AMC).
► It significantly reduces the number of It significantly reduces the number of triangles and improves the triangles and improves the performance of the manipulation of performance of the manipulation of the 3D surfaces.the 3D surfaces.
IntroductionIntroduction
►A typical example with the volume A typical example with the volume dataset of size 256dataset of size 256256256113 shows 113 shows that the number of triangles is reduced that the number of triangles is reduced by by 55%.55%.
►The The qualityquality of images produced by AMC of images produced by AMC is Similar to that of MC.is Similar to that of MC.
►Fundamental problem: Fundamental problem: Crack ProblemCrack Problem
IntroductionIntroduction
►The remainder of this paper is The remainder of this paper is organized as follows:organized as follows: Sect.2Sect.2 Briefly describes the MC and Briefly describes the MC and
AMC.AMC. Sect.3 Discusses the Sect.3 Discusses the crack problemcrack problem.. Sect.4 Data structures for Sect.4 Data structures for crack patchingcrack patching
&&
Result.Result. Sect.5 Presents the conclusions.Sect.5 Presents the conclusions.
Adaptive marching cubesAdaptive marching cubes
Fig. 1. Cuberille grid data
Fig. 2. Configurations of triangulated cubes
Adaptive marching cubesAdaptive marching cubes
► The basic strategy in AMC is to adjust the shape of The basic strategy in AMC is to adjust the shape of the approximating surface based on the the approximating surface based on the curvaturecurvature of the actual surface within a cube.of the actual surface within a cube.
► Initially, we partition the volumetric data set into Initially, we partition the volumetric data set into cubes with equal size of cubes with equal size of ,which we ,which we call initial cubes.call initial cubes.
► Then we partition these cubes recursively into Then we partition these cubes recursively into smaller and smaller cubes based on the smaller and smaller cubes based on the smoothnesssmoothness of the surface with them.of the surface with them.
)),,min((2 kjimm
Adaptive marching cubesAdaptive marching cubes
Fig. 3. How the adaptive marching cubes algorithm (AMC) works in 2D.
Adaptive marching cubesAdaptive marching cubes
►For each cube, if the actual inside surface iFor each cube, if the actual inside surface is s flat enoughflat enough, the triangles of the MC surfa, the triangles of the MC surface configurations are used to approximatce configurations are used to approximate it.e it.
►Conversely, if the actual surface has a Conversely, if the actual surface has a highigh curvatureh curvature, the cube will be partitioned i, the cube will be partitioned into eight subcubes.nto eight subcubes.
Adaptive marching cubesAdaptive marching cubes
►The process will be repeated until …The process will be repeated until … all surfaces in the subcubes are flat enough to all surfaces in the subcubes are flat enough to
be approximated with the MC configurations.be approximated with the MC configurations. or until the length of the subcube sides is one.or until the length of the subcube sides is one.
►We given a small constant We given a small constant , which is use , which is used to measure the angle of two normals.d to measure the angle of two normals.
►Problem: Problem: Crack ProblemCrack Problem
Crack ProblemCrack Problem
►We define the following terms:We define the following terms: Patch facePatch face
►It is the It is the smallest facesmallest face for crack patching. for crack patching.►It is the common face of two neighboring cubes It is the common face of two neighboring cubes
of equal size, one of equal size, one divideddivided and the other and the other undividedundivided..
Intersection pointIntersection point►It is the approximate intersection point between It is the approximate intersection point between
the the actual surfaceactual surface and a and a cube edgecube edge with with different colors at the two ends.different colors at the two ends.
Intersection edgeIntersection edge►It is the linking line of two intersection points.It is the linking line of two intersection points.
SolutionSolution
►To solve the crack problem, we generate To solve the crack problem, we generate polygons with the same shapespolygons with the same shapes as those as those of the cracks and then patch them.of the cracks and then patch them.
►Our idea is to Our idea is to reducereduce all possible cases of all possible cases of shapes to some basic configurations, and shapes to some basic configurations, and then design the then design the crack-patching algorithmcrack-patching algorithm to cover all the cases.to cover all the cases.
SolutionSolution►The key issue here is how to deal with The key issue here is how to deal with
the arbitrary size of a patch face.the arbitrary size of a patch face. Case 1Case 1: both 1-vertex and 0-vertex : both 1-vertex and 0-vertex
present.present.In terms of topology there are only two In terms of topology there are only two
cases of patch cases of patch face show in Fig. 7face show in Fig. 7
Case 2Case 2: only 1-vertex or 0-vertex present.: only 1-vertex or 0-vertex present.
SolutionSolution
► Solid lineSolid line represents an represents an intersection edgeintersection edge contributed by contributed by undividundivided cubeed cube along the patch face. along the patch face.
► Dotted arcDotted arc represents a represents a polyline polyline which is made up of the consecut which is made up of the consecutive intersection edges contributed by the ive intersection edges contributed by the divided cubesdivided cubes..
Fig. 8.Case of one 1-vertex on a patch-face square
SolutionSolution
►Each case of the crack obeys the following Each case of the crack obeys the following rules:rules: At each end of a solid line, there is one At each end of a solid line, there is one
dotted arc ending.dotted arc ending. A patch-face edge with A patch-face edge with different coloreddifferent colored
vertices at both ends has an vertices at both ends has an oddodd number of number of intersection points on it.intersection points on it.
A patch face edge with A patch face edge with same coloredsame colored vertices at both ends has anvertices at both ends has an even even number number of intersection points on it.of intersection points on it.
SolutionSolutionFig. 12.Case of all 0-vertices or all 1-vertices on a patch-face square
Fig. 13.Multiple cracks on one patch face.
SolutionSolution
► Based on the 22 basic configurations of Based on the 22 basic configurations of arbitrarily sized cracks in Figs. 8, 11, and 12, arbitrarily sized cracks in Figs. 8, 11, and 12, we can extract the common features to form we can extract the common features to form a a simple rulesimple rule for crack patching. for crack patching.
► The rule is that there is The rule is that there is only one polygon on only one polygon on each patch faceeach patch face, and it is formed by either , and it is formed by either patch-face edge segmentspatch-face edge segments or or intersection intersection edgesedges..
Crack-patching AlgorithmCrack-patching Algorithm
► AMC travels cubes in a AMC travels cubes in a scanline order.scanline order. X -> Y -> ZX -> Y -> Z
► The information that must be kept for crack patcThe information that must be kept for crack patching includes:hing includes: The The positionposition of a cube face. of a cube face. The The sizesize of a cube face. of a cube face. Intersection edgesIntersection edges on a cube face. on a cube face. Normals Normals of all intersection points of those edges.of all intersection points of those edges.
Crack-patching AlgorithmCrack-patching Algorithm
► For each patch face on a cube face, polygons For each patch face on a cube face, polygons are formed to cover all the cracks exactly, are formed to cover all the cracks exactly, one by one.one by one.
► A crack is sometimes formed by A crack is sometimes formed by patch-face patch-face edge segmentsedge segments, as well as , as well as intersection edgesintersection edges..
► This method is correct only if This method is correct only if multiple cracksmultiple cracks on a patch face are on a patch face are not interconnectednot interconnected..
Implementation and ResultsImplementation and Results► IBM RS-600/320 workstationIBM RS-600/320 workstation►Default curvature: 30Default curvature: 30
►DatasetDataset 256256256256113 CT scan of the human head (skin 113 CT scan of the human head (skin
surface).surface).
Note: AMC-X denotes the AMC with the initial cube size of X
Implementation and ResultsImplementation and Results
►DatasetDataset 256256256256113 CT scan of the human head (bone 113 CT scan of the human head (bone
surface).surface).
Implementation and ResultsImplementation and Results
►DatasetDataset 256256256256113 CT scan of a machine part.113 CT scan of a machine part.
Implementation and ResultsImplementation and Results
► They found an interesting effect:They found an interesting effect: It was found that there were about 10000 cracks It was found that there were about 10000 cracks
in CT scan of a human head, but the number of in CT scan of a human head, but the number of cracks that were visible was much smaller.cracks that were visible was much smaller.
► The larger the size of the initial cube, the The larger the size of the initial cube, the better the result (speed) achieved.better the result (speed) achieved.
► It is true that the image quality drops with It is true that the image quality drops with larger sizes of the initial cube.larger sizes of the initial cube.