Octree-Based Decimation of Marching Cubes Surface (1996) Raj Shekhar Elias Fayyad Roni Yagel J. Fredrick Cornhill.

Slides:



Advertisements
Similar presentations
Chapter 5: Tree Constructions
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
CSE554Cell ComplexesSlide 1 CSE 554 Lecture 3: Shape Analysis (Part II) Fall 2014.
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.
Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
© 2006 Pearson Addison-Wesley. All rights reserved14 A-1 Chapter 14 excerpts Graphs (breadth-first-search)
Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or.
Unconstrained Isosurface Extraction on Arbitrary Octrees
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
CDS 301 Fall, 2009 Scalar Visualization Chap. 5 September 24, 2009 Jie Zhang Copyright ©
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
A balanced life is a prefect life.
lecture 4 : Isosurface Extraction
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Advanced Iso- Surfacing Algorithms Mengxia Zhu, Fall 2007.
Fall 2007CS 2251 Iterators and Tree Traversals. Fall 2007CS 2252 Binary Trees In a binary tree, each node has at most two subtrees A set of nodes T is.
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
Feature Sensitive Surface Extraction from Volume Data Leif P. Kobbelt Mario Botsch Ulrich Schwanecke Hans-Peter Seidel Computer Graphics Group, RWTH-Aachen.
Chapter 3 2D AND 3D SPATIAL DATA REPRESENTATIONS 김 정 준.
Semiautomatic Simplification “semisimp” by Benjamin Watson and Gong Li Presented by John Cihocki.
Chapter 12 C Data Structures Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
Voronoi Diagrams.
Adaptive Marching Cubes Renben Shu Chen Zhou Mohan S. Kankanhalli.
ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg
Chapter 5.4 Artificial Intelligence: Pathfinding.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 20: Binary Trees.
Marching Cubes A High Resolution 3D Surface Construction Algorithm.
Important Problem Types and Fundamental Data Structures
Binary Trees Chapter 6.
EUROGRAPHICS 2005 Presenter : Jong-Hyun Kim. Abstract We present a new method for surface extraction from volume data.  Maintains consistent topology.
Trees Chapter 8. 2 Tree Terminology A tree consists of a collection of elements or nodes, organized hierarchically. The node at the top of a tree is called.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Chapter 19: Binary Trees. Objectives In this chapter, you will: – Learn about binary trees – Explore various binary tree traversal algorithms – Organize.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
Lecture 10 Trees –Definiton of trees –Uses of trees –Operations on a tree.
Chapter 6 Binary Trees. 6.1 Trees, Binary Trees, and Binary Search Trees Linked lists usually are more flexible than arrays, but it is difficult to use.
AI in game (II) 권태경 Fall, outline Problem-solving agent Search.
1 Chapter 17 Object-Oriented Data Structures. 2 Objectives F To describe what a data structure is (§17.1). F To explain the limitations of arrays (§17.1).
Trees Chapter 8. 2 Tree Terminology A tree consists of a collection of elements or nodes, organized hierarchically. The node at the top of a tree is called.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Hank Childs, University of Oregon Isosurfacing (Part 3)
Week 10 - Friday.  What did we talk about last time?  Graph representations  Adjacency matrix  Adjacency lists  Depth first search.
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
Hierarchical Volume Rendering
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.
BINARY TREES Objectives Define trees as data structures Define the terms associated with trees Discuss tree traversal algorithms Discuss a binary.
Solving problems by searching A I C h a p t e r 3.
Fifth International Conference on Curves and Surfaces Incremental Selective Refinement in Hierarchical Tetrahedral Meshes Leila De Floriani University.
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
Solid Modeling Dr. Scott Schaefer.
Slide 1Lecture Fall ‘00 Surface Modeling Types: Polygon surfaces Curved surfaces Volumes Generating models: Interactive Procedural.
CSE 554 Lecture 5: Contouring (faster)
Bounding Volume Hierarchies and Spatial Partitioning
Bounding Volume Hierarchies and Spatial Partitioning
Week 11 - Friday CS221.
CSc4730/6730 Scientific Visualization
Efficient Distance Computation between Non-Convex Objects
Meshing of 3-D Data Clouds for Object Description
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
COMP171 Depth-First Search.
Depth-First Search CSE 2011 Winter April 2019.
Presentation transcript:

Octree-Based Decimation of Marching Cubes Surface (1996) Raj Shekhar Elias Fayyad Roni Yagel J. Fredrick Cornhill

Introduction The Marching Cubes (MC) algorithm has been the most popular one in generating high-quality surface representation. The Marching Cubes (MC) algorithm has been the most popular one in generating high-quality surface representation. There is a trade-off between surface detail and rendering speed. There is a trade-off between surface detail and rendering speed. Example: downsample Example: downsample

Introduction The proposed decimation algorithm uses adaptive downsampling as way to reduce the rumber of surface primitives. The proposed decimation algorithm uses adaptive downsampling as way to reduce the rumber of surface primitives. Enhance the performance of the renderer Enhance the performance of the renderer Real time Real time It downsamples the volume dataset where the isosurface is mostly flat and maintains high resolution in parts with finer details. It downsamples the volume dataset where the isosurface is mostly flat and maintains high resolution in parts with finer details. Octree Octree

Introduction The algorithm approximates the surface with large triangles at low frequency regions and small triangles at high frequency regions. The algorithm approximates the surface with large triangles at low frequency regions and small triangles at high frequency regions. The overall surface quality is controlled by the user through the error value. The overall surface quality is controlled by the user through the error value.

Octree The use of the octree data structure for this pupose is quite crucial. The use of the octree data structure for this pupose is quite crucial. Root, Intermediate node, Leaf, Branch, Level Root, Intermediate node, Leaf, Branch, Level case information, intersection points and child nodes case information, intersection points and child nodes

Octree Octree node structure: Octree node structure:

Octree If the dataset is X * Y * Z in size, the depth of the octree is about the logarithm of the maximum of X, Y and Z. If the dataset is X * Y * Z in size, the depth of the octree is about the logarithm of the maximum of X, Y and Z. The intermediate nodes, at the completion of surface tracking, do not have a valid case ( a number between 0 and 255) and intersection points. The intermediate nodes, at the completion of surface tracking, do not have a valid case ( a number between 0 and 255) and intersection points. There are many empty leaf nodes that do not have a valid case, either. There are many empty leaf nodes that do not have a valid case, either.

Octree-based decimation Algorithm Surface Tracking Merging of Cells Crack Patching Triangulation

Surface Tracking Original MC Algorithm Original MC Algorithm Cell by cell Cell by cell 15 distinct cases 15 distinct cases Linear interpolation Linear interpolation Triangulation Triangulation

Surface Tracking Enhanced MC Algorithm Enhanced MC Algorithm Based on the following observations: A very complex surface within a 3D dataset pass through only a small percentage of the total cells. A very complex surface within a 3D dataset pass through only a small percentage of the total cells. Exhaustive search of all cubes is unnecessary Exhaustive search of all cubes is unnecessary Propagation Propagation

Surface Tracking Propagation Propagation The number of neighboring cubes to visit is either 0, 3, 4, 5 or 6. The number of neighboring cubes to visit is either 0, 3, 4, 5 or 6. It must be noted that only six out of 15 distinct cases avoid visiting all the six neighboring cubes. It must be noted that only six out of 15 distinct cases avoid visiting all the six neighboring cubes. Case 0, 1, 2, 3, 5, 8 Case 0, 1, 2, 3, 5, 8 The experience shows that these six cases account for 90% of the cases encountered in extracting an isosurface. The experience shows that these six cases account for 90% of the cases encountered in extracting an isosurface.

Surface Tracking

Propagation Propagation Look-up table Look-up table FIFO queue FIFO queue 3D flag array 3D flag array All the elements of the flag array are initially marked not-visited. All the elements of the flag array are initially marked not-visited. The cells that are explored have their corresponding flag marked visited. The cells that are explored have their corresponding flag marked visited.

Merging of Cells

Merging is the most important component of this algorithm. Merging is the most important component of this algorithm. The octree is traversed level by level from bottom to top. The octree is traversed level by level from bottom to top. The child nodes under such parent nodes are evaluated to see if they can be merged together based on the merge criteria explain below. The child nodes under such parent nodes are evaluated to see if they can be merged together based on the merge criteria explain below.

Merging of Cells Merge Criteria Merge Criteria 1.All the eight child cells must either be simple cases or null. 2.If the merging failed somewhere below the current node, then no merging occurs at the current node. 3.If the parent cell results in more than one intersection on any of its edges, merging is aborted. 4. Ambiguity 5.Error value

Merge Criteria All the eight child cells must either be simple cases or null. All the eight child cells must either be simple cases or null. A child cell is null if no surface passes through it. A child cell is null if no surface passes through it. Example: Case 0 Example: Case 0 A simple case is one in which the cell has only one connected surface. A simple case is one in which the cell has only one connected surface. Example: Case 1, 2, 5, 8, 9, 11, 14 Example: Case 1, 2, 5, 8, 9, 11, 14

Merge Criteria If the merging failed somewhere below the current node, then no merging occurs at the current node. If the merging failed somewhere below the current node, then no merging occurs at the current node.

Merge Criteria If the parent cell results in more than one intersection on any of its edges, merging is aborted. If the parent cell results in more than one intersection on any of its edges, merging is aborted.

Merge Criteria If the case may result in two edges on at least one face of the parent cell. If the case may result in two edges on at least one face of the parent cell. Having two edges causes ambiguity in the patching algorithm. Having two edges causes ambiguity in the patching algorithm. + Case 6 Case

Merge Criteria The last criterion is to test if the error due to merging is with a user-specified limit. The last criterion is to test if the error due to merging is with a user-specified limit. If the maximum of such perpendicular distance is not greater than the permissible error, merging is allowed. If the maximum of such perpendicular distance is not greater than the permissible error, merging is allowed.

Crack Patching Strategy

Cracks are generated at the interfaces of cells with differing dimensions. Cracks are generated at the interfaces of cells with differing dimensions. This is a common problem with adaptive subdivision algorithm. This is a common problem with adaptive subdivision algorithm.

Crack Patching Strategy Patching is accomplished by stretching the high- resolution edge to match with the low-resolution edge. Patching is accomplished by stretching the high- resolution edge to match with the low-resolution edge. High-resolutionlow-resolution

Crack Patching Strategy The major steps in patching are the following : The major steps in patching are the following : 1. Traverse the octree in a breadth-first manner. 2. If a node with a valid case is encountered, patching is applied to its 6-connected neighboring cells at the same level of the octree.

Crack Patching Strategy 3. If the neighbor cell does not exist, the current cell is either on the edge of the dataset or is a neighbor of a larger cell. 4.If the neighbor cell exists and has a valid case, the neighbor is a cell of the same dimension. There is no chance of having a crak problem.

Crack Patching Strategy 5.If the neighboring cell has child cells below it, then the child cells have an edge on the common interface with the current cell. The end points of that edge are moved to fall on the low resolution edge. 6.Patching stops when the breadth-first traversal stops.

Triangulation The last step is to output the surface by triangulation. The last step is to output the surface by triangulation. Forming the surface, therefore, requires identifying such nodes and outputting their intersection points following the triangulation scheme of the MC algorithm. Forming the surface, therefore, requires identifying such nodes and outputting their intersection points following the triangulation scheme of the MC algorithm.

Results The following three datasets were used for this work. The following three datasets were used for this work. 1) 64*64*64 Sphere dataset 2) 128*128*128 MRI head dataset 3) 256*256*256 Table dataset

Results This table shows the execution time of the complete algorithm for the three datasets at an error value of 0.5 This table shows the execution time of the complete algorithm for the three datasets at an error value of 0.5 The execution time is directly related to the size of the dataset. The execution time is directly related to the size of the dataset.

Results Wiremesh models of the sphere and head datasets at an error value of 0.5 Wiremesh models of the sphere and head datasets at an error value of 0.5

Results Sphere dataset Sphere dataset

Results Table dataset Table dataset

Results MRI head dataset MRI head dataset

Results Percent saving in the number of triangles versus user- specified error value for the three datasets. Percent saving in the number of triangles versus user- specified error value for the three datasets.