Point Set Silhouettes via Local Reconstruction Matt Olson1, Ramsay Dyer2, Hao (Richard) Zhang1, and Alla Sheffer3 1 2 3 Point set representations • Much work on point graphics [Gross & Pfister 07] • Full reconstruction hard and may be unnecessary • Image space: mostly for rendering [Zwicker et al. 01] • Object space – Geomtry analysis and processing in 3D – Almost always based on some form of local analysis Point set silhouettes • Important characteristic curves for shape perception [Koenderink 84] • Interactive point set visualization – Sparse representation O( n ) – Incremental extraction [Olson & Zhang 06] • Stylized rendering • Point set shadows Relation works • Image-space silhouettes by exploiting exploit depth discontinuity via splatting [Xu et al. 04] • Object space silhouette extraction – Dual [Hertzmann & Zorin 00, Pop et al. 01] or Hough transform [Olson & Zhang 06] with incremental silhouette extraction for polygonal meshes – Point set silhouettes via normal threasholding [Zakaria et al. 04] Related works • Most existing local reconstructions form part of full reconstruction global consistency – Cocone [Amenta et al. 2002], T-coords [Boissonnat & Flototto 2004]: Voronoi diagram of entire point set – Umbrella-based on GPU [Kil & Amenta 2008] • Not designed to handle close-by surface sheets, sharp features, or open boundaries Definition • On smooth surface S from viewpoint v p S : n( p) ( p v) p v • Natural extension to point sets: thresholding on estimated normals – Hard to set a proper threshold – Simultaneous over- and under-detection – Normal smoothing does not solve problem S Simple but key observation • Using point normals only is not enough • Need surface information even though local Low-curvature regions • Normal thresholding over low-curvature area: both points pass the threshold v Low-curvature regions • Normal thresholding over low-curvature area • With local surface reconstruction v Low-curvature regions • Normal thresholding over low-curvature area • With local surface reconstruction: viewpoint lies in one and only one double wedge v Double wedge: whether mesh edge is along silhouette High-curvature regions • Normal thresholding over high-curvature area: neither point passes the threshold v High-curvature regions • Normal thresholding over high-curvature area • With local surface reconstruction v High-curvature regions • Normal thresholding over high-curvature area • With local surface reconstruction: viewpoint lies in one and only one double wedge v General definition of silhouettes? • Perpendicularity between normal and view vector: not readily generalized to points • Double wedge: applies to mesh edges, not directly to points in point cloud • Seek definition of point set silhouettes – Ideally also applicable to smooth surfaces, and mesh primitives Silhouette generating sets (SGS) • SGS of a surface primitive (e.g., a point p): set of points which “see” p as on silhouette – For smooth surfaces: tangent plane at p – For mesh edge: double wedge = set of “tangent planes” bounded by supporting planes of faces – For mesh vertex: union of double wedges of the umbrella triangles at p e p p Point set silhouette • Relate to underlying surface S • Point p is on the silhouette if a true silhouette arc of S is close to p on the surface SGS for point sampled from surface S: union – Interpretation: arc passes intrinsic Voronoi cell of p of tangent planes at intrinsic Voronoi cell of p Discretized version • Construct local umbrellas around each point • Umbrella triangles possess Delaunay property to approximate intrinsic Voronoi cell • Identify point set silhouette using SGS of constructed umbrellas Difficult issues • Noise • Sparse and non-uniform sampling • Close-by surface sheets • Sharp features • Surface boundaries Assumptions • Underlying surface is piece-wise smooth • Noise removed in pre-processing: weighted locally optimal projection (WLOP) [Huang et al. 09] • Well sampled over smooth regions sampling radius dictated by local feature size (lfs) • At sharp features (lfs criterion does not apply), rely on local uniformity of sampling Algorithm overview • Input: a set of unorganized points sampled from a piecewise smooth surface • Output: a one-ring umbrella at each point p • Core steps: – Normal estimation using Gabriel triangles – Successive filtering of k-nearest neighbours (kNNs) – Delaunay flips over set of one-ring triangles – Boundary handling: sharp feature or open boundary Gabriel triangle • Gabriel triangle: triangle whose circumball contains no other sample points • For each p, let q be closest neighbour • Gabriel triangle tG(p): (p, q, u) having the smallest circumradius Gabriel normal • Normal at p = Gabriel normal = normal of tG(p) • It can be proved that when surface region is smooth and well sampled, Gabriel normal approximates well the surface normal (Appendix in paper) Angle filtering • Among all kNNs (k = 16) of p, remove those whose edges form an angle larger than a threshold with supporting plane of tG(p) • Serves to remove samples from close-by surfaces or across sharp features Compared to PCA • Using the same k for kNNs • Rendered by oriented splats Ours PCA Boundary handling • Angle filtering may still leave kNN’s across a sharp feature but close to the feature (blue) • Want to construct a half umbrella in this case Boundary detection • Near boundaries, lfs criterion does not apply, so assume local sampling uniformity – Restrict point counts in fixed neighborhoods – Expressed as a bound on minimum edge length – Translates to bound on angles at p p Boundary detection • Near boundaries, lfs criterion does not apply, so assume local sampling uniformity – Restrict point counts in fixed neighborhoods – Expressed as a bound on minimum edge length – Translates to bound on angles at p p p Delaunay flips • Apply Delaunay edge flips [Dyer et al. 2007] to find umbrella (approx. intrinsic Voronoi cell) Delaunay flips • Apply Delaunay edge flips [Dyer et al. 2007] to find umbrella (approx. intrinsic Voronoi cell) Boundary cleaning • Triangles adjacent to detected boundary may be spurious • “Enlarge” the boundary Boundary cleaning • Triangles adjacent to detected boundary may be spurious • “Enlarge” the boundary Gabriel normal not trustworthy • This happens at a sharp feature • Untrustworthy: less than half of original kNN’s make angle less than with plane of tG(p) Multi-umbrellas • Choose triangle alternative to tG(p) • Compute partial one-rings as before • At sharp edges, compute partial umbrella on each facet, join adjacent umbrella triangles along edge • Open surface boundaries will have only one (half) umbrella as well Interactive point set silhouette • Apply Hough-space algorithm [Olson & Zhang 2006] to find and update silhouette points • Render consensus edges: if p, q both on silhouette and in each others’ umbrellas, draw edge pq • No globally consistent edge connectivity Point set silhouette results Normal thresholding Ours Camera viewpoint and silhouette viewpoint not the same Point set silhouette results Normal thresholding Ours Point set silhouette results Normal thresholding Ours Point set silhouette results Normal thresholding Ours Limitations • Separate handling of noise in input – WLOP imperfect: leaves high-frequency details causing non-clean silhouettes • Relies on sufficient sampling density and local sampling uniformity • Silhouettes formed by independent edges, not connected line loops with correct topology [Akenine-Moller & Assarsson 2003] Sampling conditions • Well sampled with local sampling uniformity – Hard to guarantee in practice – WLOP not always adequate near sharp features – Need effective resampling or upsampling especially near shape features – The reason normal thresholding does not work is an undersampling problem In retrospect • A paper on how to choose the best kNNs • With local reconstruction, convenient to render point set silhouettes – Umbrella edges give clean edge rendering – Even point cloud visibility, e.g., via splatting of umbrella triangles Future work • Assemble silhouette edges into closed loops • Simple point set silhouettes [Grotler et al. 03] • Additional applications of point set silhouettes • Additional applications of constructed local umbrellas in point processing • Parallelization and GPU implementation Acknowledgement • Anonymous reviewers • Funding: NSERC (Canada) • Mesh models: AIM@SHAPE Thank you!