Wiener Subdivision: Implementing Marc Alexa's Filtering Methodology
220 likes | 260 Vues
Derive and implement a subdivision scheme based on Wiener filtering of meshes. Create refined mesh by relocating vertices for a smooth surface. Explore Wiener filtering theory, m-ring neighborhoods, and linear system solutions. Using C++ in Wiener Subdivision development with GTS mesh format on Windows XP. Utilize TNT for numerical toolkit and Jama/C++ for linear system solutions. Enhance mesh data structure and refinement with Wiener Subdivision filtering. Parameters include neighborhood size, smoothness control, and vertex location fraction. Results show different parameter combinations.
Wiener Subdivision: Implementing Marc Alexa's Filtering Methodology
E N D
Presentation Transcript
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
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
Wiener Filtering Filtering of Irregular Meshes using Wiener Filter Recovering original smooth geometry from noisy data
Wiener Filtering - Theory Mesh • Triangular domain (K,V) connectivity info vertices in R3 Topological Distance ()
Wiener Filtering - Theory • Neighborhood Definition m-ring neighborhood Collection of rings, with radius up to m • Expectation linear operator Correlation Distance between two vertices
Wiener Filtering - Theory Representation of Vertex Locations vertex position in noisy mesh random noise contribution true vertex position Estimate each point as a linear sum of given noisy points Find coefficients that minimize square of discrepancy
Wiener Filtering - Theory Linear System Solution of this system gives, coefficients aij Need to define distance and correlation functions 1 d i d 2 d
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
Wiener Subdivision mesh data structure • Tree each triangle divided into 4 childs Triangles Edge Sharing
Wiener Subdivision mesh refinement • Linear midpoint subdivision
Wiener Subdivision filtering • computing Topology • compute m-ring neighborhood BFS over vertices • compute distance and correlation x is parameterized for smoothness control
Wiener Subdivision filtering • solve linear system • LU decomposition method • Jama/C++
Wiener Subdivision parameters • size of m-ring neighborhood (1, 2, …) <-m> • smoothness parameter <-sp> • fraction of old vertex location in new location <-p>
results -m1 / -n3 / -sp2
results -m1 / -n3 / -sp0 -m2 / -n3 / -sp2
results -m1 / -n3 / -sp0 -m1 / -n3 / -sp2 -m2 / -n3 / -sp2
results -m1 / -n3 / -sp2 -m1 / -n3 / -sp2 / -p0.3
results -m2 / -n3 / -sp2 -m1 / -n3 / -sp2 / -p0.3