Wiener Subdivision Presented by Koray KAVUKCUOGLU Geometric Modeling Spring 2004 Outline • Introduction – Concepts • Wiener Filtering – Theory • Wiener Subdivision – Midpoint Subdivision – Application of Filter – Parameters • Results May 05, 2004 2 Introduction aim – Derive and Implement a subdivison scheme Based on Marc Alexa’s Wiener Filtering of Meshes methodology – Midpoint Linear Subdivision – Create refined mesh – Wiener Filtering – Relocate vertices to obtain a smooth surface May 05, 2004 3 Wiener Filtering – Filtering of Irregular Meshes using Wiener Filter – Recovering original smooth geometry from noisy data May 05, 2004 4 Wiener Filtering - Theory Mesh – Triangular domain (K,V) connectivity info vertices in R3 –Topological Distance () 0 i j (i, j ) 1 {i, j} K min( (i, k ) 1) {k , j} K May 05, 2004 5 Wiener Filtering - Theory – Neighborhood Definition m-ring neighborhood N m (i) { j | (i, j ) m} Collection of rings, with radius up to m – Expectation linear operator E ( a b) E (a) E (b) May 05, 2004 – Correlation C (d (a, b)) E (ab) Distance between two vertices 6 Wiener Filtering - Theory Representation of Vertex Locations vertex position in noisy mesh vi vi ri true vertex position random noise contribution Estimate each point as a linear sum of given noisy points vi aij vj i j Find coefficients that minimize square of discrepancy May 05, 2004 7 Wiener Filtering - Theory Linear System Solution of this system gives, coefficients aij Ci ai bi bi {C (d (vi , v j ))} Ci {C (d (v j , vk ))} Need to define distance and correlation functions 1 i d d 2 d May 05, 2004 8 Wiener Subdivision development environment – Language C++ – Mesh format GTS – Windows XP – Cygwin external libs / tools – TNT (template numerical toolkit) Supersedes Lapack++ – Jama/C++ (uses TNT - linear system solution) – Mesh Viewer for visualization May 05, 2004 9 Wiener Subdivision mesh data structure – Tree each triangle divided into 4 childs – Triangles – Edge Sharing May 05, 2004 10 Wiener Subdivision mesh refinement – Linear midpoint subdivision May 05, 2004 11 Wiener Subdivision filtering – computing Topology – compute m-ring neighborhood BFS over vertices – compute distance and correlation va vb 1 ex x is parameterized for smoothness control May 05, 2004 12 Wiener Subdivision filtering – solve linear system – LU decomposition method – Jama/C++ May 05, 2004 13 Wiener Subdivision parameters – size of m-ring neighborhood (1, 2, …) <-m> – smoothness parameter <-sp> – fraction of old vertex location in new location <-p> May 05, 2004 14 results -m1 / -n3 / -sp2 May 05, 2004 15 results -m1 / -n3 / -sp0 May 05, 2004 -m2 / -n3 / -sp2 16 results -m1 / -n3 / -sp0 -m1 / -n3 / -sp2 -m2 / -n3 / -sp2 May 05, 2004 17 results -m1 / -n3 / -sp2 May 05, 2004 -m1 / -n3 / -sp2 / -p0.3 18 results -m2 / -n3 / -sp2 May 05, 2004 -m1 / -n3 / -sp2 / -p0.3 19 results May 05, 2004 20 results May 05, 2004 21 Questions? May 05, 2004 22