Asst. Prof. Yusuf Sahillioğlu

Slides:



Advertisements
Similar presentations
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.
Advertisements

Developable Surface Fitting to Point Clouds Martin Peternell Computer Aided Geometric Design 21(2004) Reporter: Xingwang Zhang June 19, 2005.
Surface Reconstruction From Unorganized Point Sets
Surface normals and principal component analysis (PCA)
Searching on Multi-Dimensional Data
A Geometric Perspective on Machine Learning 何晓飞 浙江大学计算机学院 1.
Week 14 - Monday.  What did we talk about last time?  Bounding volume/bounding volume intersections.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2013.
CS447/ Realistic Rendering -- Solids Modeling -- Introduction to 2D and 3D Computer Graphics.
CENG 789 – Digital Geometry Processing 01- Introduction Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
CENG 789 – Digital Geometry Processing 05- Smoothing and Remeshing
CENG 789 – Digital Geometry Processing 06- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
1cs533d-winter-2005 Notes  More optional reading on web for collision detection.
Pauly, Keiser, Kobbelt, Gross: Shape Modeling with Point-Sampled GeometrySIGGRAPH 2003 Shape Modeling with Point-Sampled Geometry Mark Pauly Richard Keiser.
Implicit Surfaces Tom Ouyang January 29, Outline Properties of Implicit Surfaces Polygonization Ways of generating implicit surfaces Applications.
1cs426-winter-2008 Notes  Course project: Will be due at the end of the term You can do it in pairs Create an animation that combines an algorithm for.
Feature Sensitive Surface Extraction from Volume Data Leif P. Kobbelt Mario Botsch Ulrich Schwanecke Hans-Peter Seidel Computer Graphics Group, RWTH-Aachen.
Efficient simplification of point-sampled geometry Mark Pauly Markus Gross Leif Kobbelt ETH Zurich RWTH Aachen.
Implicit Representations of Surfaces and Polygonalization Algorithms Dr. Scott Schaefer.
CENG 789 – Digital Geometry Processing 02- Mesh Data Structures Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg
CSE 681 Ray Tracing Implicit Surfaces. CSE 681 Overview Similar to CSG –Combine primitive objects to form complex object Primitives are “density fields”
October 8, 2013Computer Vision Lecture 11: The Hough Transform 1 Fitting Curve Models to Edges Most contours can be well described by combining several.
Volumetric and Blobby Objects Lecture 8 (Modelling)
Bresenham’s Algorithm. Line Drawing Reference: Edward Angel’s book: –6 th Ed. Sections 6.8 and 6.9 Assuming: –Clipped (to fall within the window) –2D.
Graphics Graphics Korea University cgvr.korea.ac.kr Creating Virtual World I 김 창 헌 Department of Computer Science Korea University
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Algorithms for Triangulations of a 3D Point Set Géza Kós Computer and Automation Research Institute Hungarian Academy of Sciences Budapest, Kende u
Geometric Modeling using Polygonal Meshes Lecture 1: Introduction Hamid Laga Office: South.
Point Set Processing and Surface Reconstruction (
2D/3D Shape Manipulation, 3D Printing Shape Representations Slides from Olga Sorkine February 20, 2013 CS 6501.
Cartographic and GIS Data Structures Dr. Ahmad BinTouq URL:
Multi-dimensional Search Trees
CS 376 Introduction to Computer Graphics 04 / 20 / 2007 Instructor: Michael Eckmann.
Course 13 Curves and Surfaces. Course 13 Curves and Surface Surface Representation Representation Interpolation Approximation Surface Segmentation.
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
3D Object Representations
Mesh Coarsening zhenyu shu Mesh Coarsening Large meshes are commonly used in numerous application area Modern range scanning devices are used.
3D Game Engine Design 1 3D Game Engine Design Ch D MAP LAB.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
CENG 789 – Digital Geometry Processing 04- Distances, Descriptors and Sampling on Meshes Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
Multi-dimensional Search Trees CS302 Data Structures Modified from Dr George Bebis.
1/57 CS148: Introduction to Computer Graphics and Imaging Geometric Modeling CS148 Lecture 6.
Data Visualization Fall The Data as a Quantity Quantities can be classified in two categories: Intrinsically continuous (scientific visualization,
CENG 789 – Digital Geometry Processing 07- Rigid-Body Alignment Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
CENG 789 – Digital Geometry Processing 10- Data-Driven Shape Analysis
CENG 789 – Digital Geometry Processing 03- Point Sets Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept,, Turkey.
Solid Modeling Dr. Scott Schaefer.
Slide 1Lecture Fall ‘00 Surface Modeling Types: Polygon surfaces Curved surfaces Volumes Generating models: Interactive Procedural.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Hierarchical Data Structure in Game Programming Yanci Zhang Game Programming Practice.
CSE 554 Lecture 5: Contouring (faster)
CENG 789 – Digital Geometry Processing 08- Rigid-Body Alignment
CENG 789 – Digital Geometry Processing 06- Mesh Generation
CENG 789 – Digital Geometry Processing 01- Introduction
CENG 789 – Digital Geometry Processing 10- Least-Squares Solutions
Constructing Objects in Computer Graphics By Andries van Dam©
3D Object Representations
Controlled Topology Simplification (Voxel Based Object Simplification)
Domain-Modeling Techniques
Lecture 3 : Isosurface Extraction
Volume Graphics (lecture 4 : Isosurface Extraction)
A Volumetric Method for Building Complex Models from Range Images
Three Step Geometric Pipeline
Point-Cloud 3D Modeling.
Collision Detection.
CENG 789 – Digital Geometry Processing 11- Least-Squares Solutions
Special Models for Animation
Presentation transcript:

Asst. Prof. Yusuf Sahillioğlu CENG 789 – Digital Geometry Processing 04- Explicit and Implicit Surfaces Follow in slide show (F5) mode for the explanatory animations. Asst. Prof. Yusuf Sahillioğlu Computer Eng. Dept, , Turkey

Explicit Representation RECALL: Polygon meshes are piecewise linear surface representatins. Analogous to piecewise functions: Think surface as (the range of) a “shape” function. vs.

Explicit Surface Representation For varying t, we get 2D shape (circle) points: t in [0, 2pi]. Parameterization f maps a 1D parameter domain, e.g., [0, 2pi], to the curve (surface) embedded in R2 (R3).

Implicit Surface Representation Implicit or Volumetric surface representation. Surface is defined to be the zero-set of a scalar-valued function F. That is, we have , and then surface . Circle of radius r: is defined by (x,y) pairs that make the right-hand-side 0

Explicit vs. Implicit Explicit: Implicit: Range of a parameterization function. Implicit: Kernel of an implicit function.

Explicit vs. Implicit Explicit: for non-mathematical/arbitrary shapes. (direct point) Range of a parameterization function. Piecewise approximation. Implicit: for non-mathematical/arbitrary shapes. Kernel of an implicit function. (zero-set)

Explicit vs. Implicit Explicit: Implicit: Range of a parameterization function. Piecewise approximation. Splines, triangle meshes, points. Easy rendering. Easy geometry modification (new t = new sample). Implicit: Kernel of an implicit function. Scalar-valued 3D grid (mesh lies here). Easy in/out test (just evaluate F). Easy topology modification. Easy topology modification: structure of F, e.g., voxel grid, is independent from the topology of the level-set surface; hence we can easily change surface topology/connectivity.

Implicit Surfaces Level-set of a function defines the shape. Level means function values are the same = at the same level. Traditionally, level is 0, hence 0-set of the function F is sought.

Implicit Surfaces Level-set of 2D function F(x, y) defines 1D curve.

Implicit Surfaces Level-set of 3D function F(x, y, z) defines 2D surface.

Implicit Function F Most common and natural representation is Signed Distance Function. Maps each 3D point x to its signed distance F(x) from the surface. Sign indicates inside/outside. F(x)=0 means x is on the surface. Other than SDF, continuous intensity function from CT/MRI scans are also popular. Here we will focus on the computation of SDF as it is a geometric problem. CT/MRI devices provide intensity information with their underlying radiologic technology.

Surface Reconstruction Given a set of 3D points, compare Explicit vs. Implicit reconstruction. Why is implicit better?

Surface Reconstruction Given a set of 3D points, compare Explicit vs. Implicit reconstruction. Explicit reconstruction method: Connect sample points by triangles. Exact interpolation of sample points. Bad for noisy or misaligned data (common in scans). May lead to holes or non-manifoldness.

Surface Reconstruction Given a set of 3D points, compare Explicit vs. Implicit reconstruction. Implicit reconstruction method: Estimate signed distance function (SDF) for each grid point (scalar-valued grid). Extract level zero iso-surface from this grid (Marching Cubes). Approximation of input points (better in noisy situations). Manifoldness by construction.

Implicit Reconstruction Implicit function approach.

Implicit Reconstruction Implicit function approach. Define a function F : R3  R with value <0 outside, >0 inside, =0 on.

Implicit Reconstruction Implicit function approach. Extract the zero-set isosurface, i.e., S = {x in R3 | F(x) = 0 }.

Implicit Reconstruction Implicit function: Signed distance function F : R3  R. Construction algorithm. Input: point samples representing the object to be reconstructed. Output: F value at each grid point, i.e., signed distance of that grid pnt to the sampled surface.

Implicit Reconstruction So we need a grid that encapsulates the sampled surface. Uniform 2D grid. Mesh to be extracted: 1D (closed) curve  Uniform 3D grid. Mesh to be extracted: 2D (closed) surface 

Implicit Reconstruction Mesh extraction idea. Marching Squares (2D), Marching Cubes (3D).

Implicit Reconstruction Mesh extraction idea. Marching Squares (2D), Marching Cubes (3D).

Implicit Reconstruction Back to the construction of the Signed Distance Function F : R3  R. Input: sample points. Output: F value at each grid point. Algo: Associate a tangent plane with each sample point. Why? Tangent planes are local linear approximations to the surface. Compute F(x) = (x - oi) ni

Implicit Reconstruction Tangent plane for sample point s is found as follows: Find k-nearest neighbors of s. Apply principle component analysis on this set of close points. Find the covariance matrix of the set. Take the eigenvectors of this matrix as the principal axes. Use the second best principle as the normal of the tangent plane, i.e., ni. Use the mean of this point set as the centering point of the plane, i.e., oi.

Implicit Reconstruction k-nearest points. Brute force: O(k * N) when we have N samples. //103 steps Can be done in O(k * lgN) using Kd-trees. //10 steps. Kd-tree: cells are axis-aligned bounding boxes.

Implicit Reconstruction Kd-tree insertion. k = # of dimensions = 2 in example below. Idea: every time you go down in tree, you toggle decision-making dimension.

Implicit Reconstruction Kd-tree insertion. k = # of dimensions = 2 in example below. Idea: every time you go down in tree, you toggle decision-making dimension.

Implicit Reconstruction Kd-tree search operation. Search (5, 2) below. 5 > 3 go right, 2 > 1 go right, 5 < 6 go left, 2 < 9 look left, not found

Implicit Reconstruction Kd-tree partitioning. Going left or right means partitioning the space. (3,7) inserted (8,1) inserted (6,6) right of the 3-line, top of the 1-line: partition the space everything <= 1 into 2 axis-aligned everything > 1 bounding boxes, i.e., (w.r.t. y dimension) everything <= 3 to left everything > 3 to right.

Implicit Reconstruction Kd-tree partitioning. Going left or right means partitioning the space. (2,6) inserted (1,7) inserted (8,6) inserted (5,9) inserted

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Our algo should return point 5 (as the nearest one to the query). Algo: + Check distance from point in node to query point. + Recursively search left/bottom (if it could contain a closer point) (= cut out). + Recursively search right/top (if it could contain a closer point) (= cut out). + Organize method so that it begins by searching for a query point (= going towards query).

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Go towards query point, i.e., left. (there might be a closer pnt than 1 in the right; at least we think so now).

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. When recursion gets back to pnt 1, we won’t search the right subtree ‘cos there could be no point closer to query than 3. //cutting out 

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Going towards the query point, so checking the top of 3. Pnt 6 is not better so do not update the champion. http://youtu.be/1OoM0phlO_U?t=17m55s

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Check left subtree of pnt 6 (going towards qury), empty, so do nothing.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Do not check the right subtree of pnt 6 ‘cos they can’t be closer than 3.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Recursion checks the bottom subtree of pnt 3, which takes us to pnt 4, which is not closer; so 3 is still the champion.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Check left subtree of pnt 4 (towards query), where we have pnt 5, the new champion.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Check top of pnt 5 (no pnts there), do nothing.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Check bottom of pnt 5 (no pnts there), do nothing.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Recursion comes back to the right subtree of pnt 4, but cut it out (no search) ‘cos there can’t be a closer pnt there than pnt 5.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Recursion comes back to pnt 3, whose both subtrees are handled.

Implicit Reconstruction Kd-tree nearest-neighbor to a query point. Idea: As we get closer to the query point, we are cutting out all the subtrees that are away. Recursion comes back to pnt 1, right subtree is next, but cut it out (no search) ‘cos there can’t be a closer pnt there than pnt 5.

Implicit Reconstruction We efficiently (kd-tree) computed signed distance function F. The only thing left is to find the intersection point on the square/cube edge: Square: Cube:

Implicit Reconstruction We efficiently (kd-tree) computed signed distance function F. The only thing left is to find the intersection point on the square/cube edge: Square: Cube:

Implicit Reconstruction We efficiently (kd-tree) computed signed distance function F. The only thing left is to find the intersection point x on the square/cube edge: F = F0 * (1-u) + F1 * u  for F=0, u = F0 / (F0 – F1) //F is linear on edges. x = x0 + u * (x1 – x0)  use u computed above and locate x 