Discrete Space, Voxelization and Distance Fields Jian Huang, CS 594, Spring 2002.

Slides:



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

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.
Yang Yang, Miao Jin, Hongyi Wu Presenter: Buri Ban The Center for Advanced Computer Studies (CACS) University of Louisiana at Lafayette 3D Surface Localization.
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.
CSE 681 Bounding Volumes. CSE 681 Bounding Volumes Use simple volume enclose object(s) tradeoff for rays where there is extra intersection test for object.
 Distance Problems: › Post Office Problem › Nearest Neighbors and Closest Pair › Largest Empty and Smallest Enclosing Circle  Sub graphs of Delaunay.
03/12/02 (c) 2002 University of Wisconsin, CS559 Last Time Some Visibility (Hidden Surface Removal) algorithms –Painter’s Draw in some order Things drawn.
Extended Gaussian Images
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
Different types of Polygons Simple Convex Simple Concave Non-simple : self-intersecting With holes ConvexConcaveSelf-intersecting.
Discrete Geometry Tutorial 2 1
Dual Marching Cubes: An Overview
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
1 Computer Graphics Chapter 7 3D Object Modeling.
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.
Discrete geometry Lecture 2 1 © Alexander & Michael Bronstein
Shape from Contours and Multiple Stereo A Hierarchical, Mesh-Based Approach Hendrik Kück, Wolfgang Heidrich, Christian Vogelgsang.
Asst. Prof. Yusuf Sahillioğlu
Vertices and Fragments I CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Graphics Programming: Polygon Filling
Segmentation Divide the image into segments. Each segment:
Implicit Surfaces Tom Ouyang January 29, Outline Properties of Implicit Surfaces Polygonization Ways of generating implicit surfaces Applications.
Feature Sensitive Surface Extraction from Volume Data Leif P. Kobbelt Mario Botsch Ulrich Schwanecke Hans-Peter Seidel Computer Graphics Group, RWTH-Aachen.
Fat Curves and Representation of Planar Figures L.M. Mestetskii Department of Information Technologies, Tver’ State University, Tver, Russia Computers.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
Complex Model Construction Mortenson Chapter 11 Geometric Modeling
1 Numerical geometry of non-rigid shapes Non-Euclidean Embedding Non-Euclidean Embedding Lecture 6 © Alexander & Michael Bronstein tosca.cs.technion.ac.il/book.
ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Volumetric and Blobby Objects Lecture 8 (Modelling)
CS 450: Computer Graphics REVIEW: OVERVIEW OF POLYGONS
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
3/4/04© University of Wisconsin, CS559 Spring 2004 Last Time Clipping Lines –Cohen-Sutherland: The use of outcodes and early reject/accept tests –Liang-Barsky:
CS 551/651 Advanced Computer Graphics Warping and Morphing Spring 2002.
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Interactive Rendering of Meso-structure Surface Details using Semi-transparent 3D Textures Vision, Modeling, Visualization Erlangen, Germany November 16-18,
Geometric Modeling using Polygonal Meshes Lecture 1: Introduction Hamid Laga Office: South.
University of Coimbra Reconstruction of Voxels from Sensor Data Ricardo Martins Coimbra, 19 th January 2010 Doctoral Programme in Electrical Engineering.
COLLEGE OF ENGINEERING UNIVERSITY OF PORTO COMPUTER GRAPHICS AND INTERFACES / GRAPHICS SYSTEMS JGB / AAS Solid Modelling Graphics Systems / Computer.
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Introduction to Computational Geometry Hackson
Solid Modeling. Solid Modeling - Polyhedron A polyhedron is a connected mesh of simple planar polygons that encloses a finite amount of space. A polyhedron.
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
CHAPTER 5 CONTOURING. 5.3 CONTOURING Fig 5.7. Relationship between color banding and contouring Contour line (isoline): the same scalar value, or isovalue.
3D Object Representations 2011, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Data Visualization Fall The Data as a Quantity Quantities can be classified in two categories: Intrinsically continuous (scientific visualization,
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
APE'07 IV INTERNATIONAL CONFERENCE ON ADVANCES IN PRODUCTION ENGINEERING June 2007 Warsaw, Poland M. Nowakiewicz, J. Porter-Sobieraj Faculty of.
Lecture 9 From Vertices to Fragments. Objectives Introduce basic implementation strategies Clipping Rasterization hidden-surface removal.
CS552: Computer Graphics Lecture 28: Solid Modeling.

CSE 554 Lecture 5: Contouring (faster)
3.1 Clustering Finding a good clustering of the points is a fundamental issue in computing a representative simplicial complex. Mapper does not place any.
CSE 554 Lecture 1: Binary Pictures
Introduction to Polygons
3D Object Representations
CSc4730/6730 Scientific Visualization
Domain-Modeling Techniques
Craig Schroeder October 26, 2004
Agenda Polygon Terminology Types of polygons Inside Test
Agenda Polygon Terminology Types of polygons Inside Test
A Volumetric Method for Building Complex Models from Range Images
CSE 554 Lecture 3: Shape Analysis (Part II)
Overview of Modeling 김성남.
Presentation transcript:

Discrete Space, Voxelization and Distance Fields Jian Huang, CS 594, Spring 2002

Papers Huang et al, ‘Accurate Voxelization of Polygonal Meshes’, IEEE Symposium on Volume Visualization, 1998 Huang et al, ‘CDFR’, IEEE Conference on Visualization, 2001

Discrete Space A 3D discrete space Z 3 is a set of integer grid points in a 3D Euclidean space denoted by S. A 3D grid point is a zero dimensional object defined by its Cartesian coordinate (x,y,z). The Voronoi neighborhood of grid point p is the set of all points in the Euclidean space that are closer to p than to any other grid point. The Voronoi neighborhood of a 3D grid point is a unit cube around it, known also as a voxel.

Discrete Space The aggregate of all voxels is a tessellation of 3D Euclidean space. A voxel’s value is mapped into the set {0,1}: –voxels assigned the value “1'' are called “black'' or “non-empty'' voxels –those assigned the value “0'' are called “white'' or “empty'' voxels

N-Adjacency In 3D discrete space –Two voxels are 26-adjacent if they share a vertex or an edge or a face 26 such adjacent voxels for any voxel –Two voxels are 18-adjacent if they share an edge or a face 18 such adjacent voxels for any voxel –Two voxels are 6-adjacent if they share a face 6 such adjacent voxels for any voxel In 2D discrete space, similarly, 4-adjacency and 8- adjacency.

N-Neighborhood The set of 2D pixels that are N-adjacent to the dark pixel where N   4, 8  The set of 3D voxels that are N-adjacent to the voxel at the center where N   6, 18, 26 

N-Path An N-path is a sequence of black voxels such that consecutive pairs are N-adjacent Two black voxels are said to be N-connected in  if there exists a connecting N-path consisting only of black voxels A (closed) N-curve is an N-path P that either contains a single voxel or each voxel in P has exactly two N-adjacent voxels also in P An open N-curve is an N-curve with two exceptions called endpoints, each of which has only one N- adjacent voxel in P

Separability In continuous space, it is impossible to pass from the region enclosed by a curve to the region outside the curve without crossing the curve itself. In discrete space, however, the opposite is possible. To avoid this discrepancy, define opposite types of connectivity for white and black sets. –Opposite types in 2D space are 4 and 8 –In 3D space, 6 is “opposite” to 26 and 18

Separability Let A, B and C be three disjoint sets of voxels. A is said to N-separate B and C if any N-path  between a voxel in B and a voxel in C meets A Separability is a topological property 4-separating and 8-separating curves

Minimality A voxel belonging to an N-separating surface is called an N-simple voxel if deleting it will not affect the surface separability. A surface is N-minimal if it does not contain any N-simple voxels Examples of a 4-minimal curve (left), 8-simple point (center), and a 4-simple point (right).

Voxelization To convert continuous surface representations (e.g. polygon mesh, parametric surfaces) into voxel representations Need to preserve separability and minimality

Pixelizing a Line For 4-separable or 8-separable, assuming the normal vector is normalized, need to include all pixels with distance to the line between:

Voxelizing a Plane For 6-separable or 26-separable, assuming the normal vector is normalized, all voxels with distance to the line between: abs(Ax + By + Cz + D) <= t

Voxelizing a Polygon Mesh Edges and vertices needs special handling for separability and minimality Let t denote the desired connectivity distance, either t 6 or t 26. R c = L/2 for 6-separability, for 26-separability:

Distance Field Discrete distance field –Each element in a distance field specifies its minimum distance to a surface geometry –Positive and negative distances are used to distinguish outside and inside of the shape negative values on the outside positive values on the inside.

First, voxelize the 3D mesh to a binary surface volume [Kaufman, Cohen, Huang…] Second, run a distance transform on the surface volume to obtain a solid distance volume –Euclidean Distance –Chamfer Distance Face, edge, vertex sharing –Manhattan Distance Face sharing Getting a Distance Field (1) Chamfer distance

Getting a Distance Field (2) Brute force: For every voxel in the volume, compute the minimal distance to the geometric surface –Euclidean distance Doable with triangle meshes, but hard problem in general Time consuming

Hierarchical Distance Field Distance fields can be stored hierarchically in Quadtree or Octree structures –Aka: adaptively sampled distance field (ADF) Use a smaller voxel size in areas of higher details

Disadvantages of Conventional Distance Fields Need to choose an initial volume resolution (the high limit of error tolerance) –When the user picks a tighter tolerance, have to do everything from scratch again The conventional distance volume is aliased –Real data sets are not smooth, thus not band- limited

Volume Anti-aliasing Non binary pre-filtered volume [Sramek & Kaufmann] –Need higher order smoothing filters for reconstruction –No idea how much detail is gone in geometric sense Not exactly sure about how geometric details are defined –Corners –Holes

Impasse Sampling rate is limited Distance fields of complex geometric models are not band-limited Impasse: would desire to keep all the geometric details in a volumetric distance field –Geometric details at <0.1% of an object’s dimension

Observation In spatial domain, if all that we want to capture are the distances to a set of finite polygons –Place an anchor point somewhere, and record the distances from the anchor to each of the finite polygons

Need New Distance Field Representation Generalize volume representation from a discretization of a continuous domain entity to a spatial data structure Try to build a spatial data structure –Every voxel to have all the information necessary to capture the exact local distance field within the span of that voxel –To answer a query of ‘what’s the thickness of an interior point, pnt,’ we only have to deal with the corresponding local voxel

CDFR The spatial data structure is named: CDFR –A Complete Distance Field Representation In the CDFR, deal with signed Euclidean distances from 3D points to finite triangles only Each spatial point has a base triangle, which is used to determine the sign of the distance value

Base Triangle Need to decide which triangle is the base triangle of a point, pnt –If pnt is closest to a triangle which pnt orthogonally projects into, then this triangle is the base triangle –Otherwise, if pnt is closest to 2 triangles sharing an edge, then compute pnt proj on this edge, connect pnt and pnt proj to form a vector V – Otherwise, pnt is closest to several triangles sharing a common vertex, connect pnt and this vertex to form the vector V

CDFR In a CDFR, the center of each voxel serves as an anchor point that captures information for the local distance field in its span First idea: each voxel stores the id of the base triangle of its center and the corresponding signed distance Not enough –Don’t have the distance information for other locations in the span of each voxel

How much information do we need on each voxel? Theorem (please refer to paper) –No triangle can be the base triangle to any location in the span of a voxel, v, if its distance to the center of v is larger than thickness(v) + sqrt(3) x voxel_size

Constructing a CDFR First, pick an initial volume resolution –Only affect the performance, not accuracy Second, voxelize the geometry into a surface volume –On each surface voxel, store those triangles that intersect that voxel –We store on each voxel a list of tuples: {triangle_id, signed distance} //CDD tuples Third, an iterative contour-by-contour distance transform to obtain the final solid CDFR

Distance Transform Loop: –Each voxel not on the surface volume inherits the CDD list from its 26-neighbors –For all the new triangles that it sees, compute its distance to each new triangle –Update the curr_min_dist –Discard all CDD tuples that have a distance larger than curr_min_dist + sqrt(3)*voxelsize This loop ends until no new updates take place in the CDFR

Answering a Query What is the minimal distance from an arbitrary 3D point to the surface geometry –Find out which voxel the point resides in, grab all triangles on that voxel –Compute the distance values from that point to all those triangles –The distance value with the minimal absolute value is what we want

A ‘Dividing Cube’ algorithm Extract a point-based distance contour of thickness, t, with an error tolerance, E. –Traverse the CDFR, grab all voxels with min_distance in the range: –Subdivide these voxels to size: –Compute the thickness values of all the sub- voxels and extract all sub-voxels whose thickness are within [t - E/2, t + E/2] Extracting a Distance Contour

On Convex Test Models 32x32x32 CDFR, conventional res

On Concave Test Models 32x32x32 CDFR, conventional res

On Practical Parts 128x128x128 CDFR, conventional res

On Practical Parts 128x128x128 CDFR, conventional res

Storage Size Only store CDFR for surface and interior voxels. For exterior voxels, just store a tag denoting ‘empty’. CDD list for each voxel takes: (5 + 4*triangle_cnt) bytes

CDFR Storage Size and Construction Time Connector, 242 triangles, (6.9, 2.0, 2.9) inches Brevi, 1812 triangles, (38.1, 34.9, 96.0) inches Voxel Cnt (K) Avg tri/surf voxel Avg tri/int voxel CDFR Size (KB) Time (sec) 128 con con2, , brevi , brevi2, ,260448

Testing Platform SGI Octane with 300MHz R12000 processor, 512 MB memory

Contour Extraction Time Depends on which thickness you pick For instance: brevi at 4 inches Higher CDFR resolution, trade storage for shorter extraction time. Extraction time (sec) 512 f-res768 f-res1024 f-res 128 CDFR CDFR

The Engine Cylinder Head Can build a 250-res 37MBytes CDFR in 30 min Can extract mm accuracy at 8.5 mm thickness within 11 min ( 470 K points, 1988x3500x1218 ) 2 frames/sec rendering of the point- based model and sorted triangle mesh in semi-transparent mode.