Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.

Slides:



Advertisements
Similar presentations
Reconstruction from Voxels (GATE-540)
Advertisements

Yingcai Xiao Chapter 6 Fundamental Algorithms. Types of Visualization Transformation Types 1.Data (Attribute Transformation) 2.Topology (Topological Transformation)
3D Head Mesh Data Stereo Vision Active Stereo 3D Reconstruction 3dMD System 1.
Graphics Pipeline.
Direct Volume Rendering. What is volume rendering? Accumulate information along 1 dimension line through volume.
Visualization Data Representation Ray Gasser SCV Visualization Workshop – Fall 2008.
3D Graphics Rendering and Terrain Modeling
CLASS 9 ADVANCE RENDERING RAY TRACING RADIOSITY LIGHT FIELD CS770/870.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
Dual Marching Cubes: An Overview
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
1 Computer Graphics Chapter 7 3D Object Modeling.
Computing 3D Geometry Directly From Range Images Sarah F. Frisken and Ronald N. Perry Mitsubishi Electric Research Laboratories.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Information Visualization.
lecture 4 : Isosurface Extraction
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Graphics Programming: Polygon Filling
Introduction to Volume Visualization Mengxia Zhu Fall 2007.
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
6.1 Vis_04 Data Visualization Lecture 6 - A Rough Guide to Rendering.
Adaptive Marching Cubes Renben Shu Chen Zhou Mohan S. Kankanhalli.
Fluid Surface Rendering in CUDA Andrei Monteiro Marcelo Gattass Assignment 4 June 2010.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg
Marching Cubes A High Resolution 3D Surface Construction Algorithm.
Computer Graphics Inf4/MSc Computer Graphics Lecture 11 Texture Mapping.
Importance Driven Volume Rendering Authors: I. Viola, A. Kanitsar, M. Gröler Visualization II Instructor: Jessica Crouch.
Computer Graphics Mirror and Shadows
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm
Volumetric and Blobby Objects Lecture 8 (Modelling)
Polygon Shading. Assigning color to a shape to make graphical scenes look realistic, or artistic, or whatever effect we’re attempting to achieve But first.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Graphics Graphics Korea University cgvr.korea.ac.kr Creating Virtual World I 김 창 헌 Department of Computer Science Korea University
19/18/ :34 Graphics II Volume Rendering Session 10.
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS 1 Shading (Shading) & Smooth Shading Graphics.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Scientific Visualization Module 6 Volumetric Algorithms (adapted by S.V. Moore – slides deleted, modified, and added) prof. dr. Alexandru (Alex) Telea.
University of Coimbra Reconstruction of Voxels from Sensor Data Ricardo Martins Coimbra, 19 th January 2010 Doctoral Programme in Electrical Engineering.
Surface Modeling Visualization using BrainVISA Bill Rogers UTHSCSA – Research Imaging Center.
Graphics Graphics Korea University cgvr.korea.ac.kr Solid Modeling 고려대학교 컴퓨터 그래픽스 연구실.
CS447/ Realistic Rendering -- Radiosity Methods-- Introduction to 2D and 3D Computer Graphics.
Segmentation & Modeling ImagesSegmented Images Models.
Volume Rendering CMSC 491/635. Volume data  3D Scalar Field: F(x,y,z) = ?  Implicit functions  Voxel grid  Scalar data  Density  Temperature  Wind.
Solid Modeling. Solid Modeling - Polyhedron A polyhedron is a connected mesh of simple planar polygons that encloses a finite amount of space. A polyhedron.
3D Volume Visualization. Volume Graphics  Maintains a 3D image representation that is close to the underlying fully-3D object (but discrete)  경계표면 (Boundary.
3-D Data cs5984: Information Visualization Chris North.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
CS 325 Introduction to Computer Graphics 03 / 29 / 2010 Instructor: Michael Eckmann.
Interactive Graphics Lecture 10: Slide 1 Interactive Computer Graphics Lecture 10 Introduction to Surface Construction.
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
3-D Information cs5764: Information Visualization Chris North.
Edge Groups: An Approach to Understanding the Mesh Quality of Marching Methods IEEE Transactions on Visualization and Computer Graphics Authors: Carlos.
Advisor : Ku-Yaw Chang Speaker : Ren-Li Shen /6/12.
Computer Graphics One of the central components of three-dimensional graphics has been a basic system that renders objects represented by a set of polygons.
Solid Modeling Dr. Scott Schaefer.
Visible-Surface Detection Methods. To identify those parts of a scene that are visible from a chosen viewing position. Surfaces which are obscured by.
APE'07 IV INTERNATIONAL CONFERENCE ON ADVANCES IN PRODUCTION ENGINEERING June 2007 Warsaw, Poland M. Nowakiewicz, J. Porter-Sobieraj Faculty of.
3D Rendering 2016, Fall.
3D Graphics Rendering PPT By Ricardo Veguilla.
CSc4730/6730 Scientific Visualization
Real-Time Volume Graphics [06] Local Volume Illumination
Volume Rendering.
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
Lecture 13 Clipping & Scan Conversion
From Voxels to 3D Uri Mike.
Presentation transcript:

Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and Development, SIGGRAPH 1987 Presented by Mark Blackburn, Fall 2005

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Organization 1.Motivation 2.Related Work 3.Information Flow 4.Algorithm 5.Short Demo 6.Results 7.Conclusion & Future Work

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Motivation 3D visualization is critical to medical field Existing algorithms inadequate: –lack detail –may introduce artifacts Create polygonal representation of constant density surfaces from 3D array of data

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work Existing methods of 3D surface generation –Trace contours within each slice then connect with triangles ( cf. topography map) –Create surfaces from “cuberilles” (voxels) –Ray casting to find the 3D surface Use hue-lightness to shade surface Use gradient to shade –Display density volumes

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work Shortcomings of Existing Techniques Throw away useful information in the original data –Cuberilles: uses thresholding to represent surface –Ray casting: uses depth shading alone or approximates shading using unnormalized gradient Some lack hidden surface removal –Volume models display all values and rely on motion to produce a 3D sensation

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Related Work Benefits of Marching Cubes approach: –Uses all information from source data –Derives inter-slice connectivity, surface location, and surface gradient –Result can be displayed on conventional graphics display systems using standard rendering algorithms

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Information Flow Information Flow for 3D Medical Algorithms –Data Acquisition : collect a series of 2D slices of information –Image Processing: find structures with 3D data or filter / bin data –Surface Construction: Create surface model of voxels or polygons –Viewing & Display: Display the surface using ray casting, depth or color shading.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Algorithm Overview The Marching Cubes Algorithm Consists of 3 basic steps: 1.Locate the surface corresponding to a user- specified value. 2.Create triangles. 3.Calculate normals to the surface at each vertex.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 1:Surface Intersection To locate the surface, it uses a logical cube created from eight pixels (Four each from 2 adjacent layers):

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 1: Surface Intersection Binary vertex assignment: (p (i, j, k) >= T U ? 1: 0) –Set cube vertex to value of 1 if the data value at that vertex exceeds (or equals) the value of the surface we are constructing –Otherwise, set cube vertex to 0 If a vertex = 1 then it is “inside” the surface If a vertex = 0 then it is “outside” Any cube with vertices of both types is “intersected” by the surface.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 2 : Triangulation For each cube, we have 8 vertices with 2 possible states each (inside or outside). This gives us 2 8 possible patterns = 256 cases. Enumerate cases to create a LUT Use symmetries to reduce problem from 256 to 15 cases.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 2 : Triangulation Use vertex bit mask to create an index for each case based on the state of the vertexes. Using the index to tell which edge the surface intersects, we can then can linearly interpolate the surface intersection along the edge. In our previous example of green pixels, v0 and v3 were “outside” the surface and thus our index would = = 246

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 3 : Surface normals To calculate surface normal, we need to determine gradient vector, g (derivative of the density function). To estimate the gradient vector at the surface of interest, we first estimate the gradient vectors at the vertices and interpolate the gradient at the intersection. The gradient at cube vertex (i, j, k), is estimated using central differences along the three coordinate axes by: D (i, j, k) is the density at pixel (i, j) in slice k. Δx, Δy, Δz are lengths of the cube edges

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Step 3 : Surface normals Dividing the gradient by its length produces the unit normal at the vertex required for rendering. Then the algorithm linearly interpolates this normal to the point of intersection.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Algorithm Summary 1.Scan 2 slices and create cube 2.Calculate index for cube based on vertices 3.Use index to lookup list of edges intersected 4.Use densities to interpolate edge intersections 5.Calculate unit normal at each edge vertex using central differences. Interpolate normal to each triangle vertex 6.Output the triangle vertices and vertex normals 7.March to next position and repeat.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Demo Short Demo / tutorial :

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Enhancements Efficiency –Take advantage of pixel-to-pixel, line-to-line, and slice-to-slice coherence by keeping previous calculations. Functional –Added solid modeling capability Boolean operations permit cutting and capping of solid models as well as multiple surface extraction.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results Bone SurfaceSoft Tissue Surface

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results – The Visible Human Inside skeleton viewTorso / bowels Images courtesy : Marching Through the Visible Man:

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results –The Visible Man

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Results Images courtesy : IF of Polytech' Nice-Sophia: Human brain surface reconstructed by using marching cubes (128,984 vertices and 258,004 triangles Magnified display of brain surface

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Conclusion Marching Cubes is an algorithm for 3D surface reconstruction well suited to series of 2D medical images (slices). Algorithm summary ( 3 steps) 1.Locate the surface corresponding to a user-specified value using cube vertex tests 2.Create triangles based on vertex states of the cube 3.Calculate normals to the surface at each vertex.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Future Work Dividing Cubes: –An algorithm that generates points rather than triangles. As the resolution of the data increases, the number of triangles approaches the number of pixels. Dual Marching Cubes –creates isosurfaces very similar to Marching cubes surfaces, but they are comprised of quad patches that eliminate some of the problems of poorly shaped triangles that can occur in this algorithm.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● Evaluation Advantages: Uses all information from source data Derives inter-slice connectivity, surface location, and surface gradient Result can be displayed on conventional graphics display systems using standard rendering algorithms Allows Solid modeling capability ( cutting and capping) Disadvantages: Requires user input Mainly limited to medical images with clear contiguous intensity boundaries (constant density) Is performing a modified form of thresholding.

● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● References W. Lorensen and H. Cline. “Marching cubes: A High Resolution 3D Surface Construction Algorithm”, Proceedings of SIGGRAPH 1987, pages , The Visible Human: Marching Cubes Demo/Tutorial: Nielson, Gregory M. “Dual Marching Cubes”, IEEE Visualization archive Proceedings of the conference on Visualization '04, Pages: