1 / 32

CSE 554 Lecture 6: Fairing

CSE 554 Lecture 6: Fairing. Fall 2013. Review. Iso-contours in grayscale images and volumes Piece-wise linear representations Polylines (2D) and meshes (3D) Primal and dual methods Marching Squares (2D) and Cubes (3D) Dual Contouring (2D,3D) Acceleration using trees

kirby
Download Presentation

CSE 554 Lecture 6: Fairing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE 554Lecture 6: Fairing Fall 2013

  2. Review • Iso-contours in grayscale images and volumes • Piece-wise linear representations • Polylines (2D) and meshes (3D) • Primal and dual methods • Marching Squares (2D) and Cubes (3D) • Dual Contouring (2D,3D) • Acceleration using trees • Quadtree (2D), Octree (3D) • Interval trees

  3. Geometry Processing • Fairing (smoothing) • Relocating vertices to achieve a smoother appearance • Simplification • Reducing vertex count • Deformation • Relocating vertices guided by user interaction or to fit onto a target

  4. Image Processing • Filtering • Changing pixel values to blur the contents

  5. Image As Signals (slides materials courtesy of Andy van Dam)

  6. Down sampling • Reconstructing the same signal using fewer samples • How many samples do we need for a “good” reconstruction? (slides materials courtesy of Andy van Dam)

  7. Waveform Analysis • A signal is the sum of phase-shifted sine curves at various scales (frequencies) (slides materials courtesy of Andy van Dam)

  8. Frequency Domain • The decomposition of a signal into sines at different frequencies is unique • Can be plotted as a frequency spectrum (Fourier transform) (slides materials courtesy of Andy van Dam)

  9. The Nyquist Limit • The sampling frequency cannot be lower than twice the highest frequency in the signal Signal: Sampling: (above Nyquist limit) Reconstruction: (slides materials courtesy of Andy van Dam)

  10. The Nyquist Limit • The sampling frequency cannot be lower than twice the highest frequency in the signal Signal: Sampling: (under Nyquist limit) Reconstruction: (slides materials courtesy of Andy van Dam)

  11. The Nyquist Limit • The sampling frequency cannot be lower than twice the highest frequency in the signal Signal: Sampling 1: (at Nyquist limit) Sampling 2: (at Nyquist limit) (slides materials courtesy of Andy van Dam)

  12. Down sampling • Reconstructing the same signal using fewer samples • How many samples do we need for a “good” reconstruction? • At least twice the highest frequency • What if we don’t have enough samples? (slides materials courtesy of Andy van Dam)

  13. Image Filtering • “Filter” the image to remove high frequencies, then sample. (slides materials courtesy of Andy van Dam)

  14. Image Filtering • Low-pass filtering: a “box” filter in the frequency domain (slides materials courtesy of Andy van Dam)

  15. Convolution • Continuous convolution • Given two functions, f and w • w is symmetric: w[x] = w[-x] • (f*w)[y] is: • Shift w so that it’s centered at y • Multiply f with (shifted) w • Find the area under the multiplied curve • Discrete convolution • f and w are two lists:

  16. Image Filtering • Low-pass filtering: convolution with Sinc[x] • Removes all frequencies greater than 1/2

  17. Image Filtering • Gaussian filtering: convolution with Gaussian function • Kernel size δ (standard deviation) controls the amount of smoothing • Repeated filtering using a small kernel is equivalent to a single filtering with a large kernel

  18. Image Filtering • Discrete Gaussian filtering with kernel size 1 • Averaging by weights {1/4,1/2,/14} • Intuitively: the signal at a point is moved to half-way between the signal and the average signals of the two neighboring points. i-1 i i+1

  19. Curve Fairing • Reducing “bumpiness” by changing the vertex locations

  20. Curve Fairing • Curve as a signal • The “signal” at each vertex is its location {x,y}

  21. Points and Vectors • Same representation • Different meaning: • Point: a fixed location (relative to {0,0} or {0,0,0}) • Vector: a direction and magnitude • No location (any location is possible) Y 2 x 1 2

  22. Point Operations • Subtraction • Result is a vector • Addition with a vector • Result is a point • Can points add? • Not yet…

  23. Vector Operations • Addition/Subtraction • Result is a vector • Scaling by a scalar • Result is a vector • Magnitude • Result is a scalar • A unit vector: • To make a unit vector (normalization):

  24. Adding Points • Affine combinations • Weighted addition of points where all weights sum to 1 • Result is another point • Same as adding scaled vectors to a point

  25. Adding Points • Affine combinations: examples • Mid-point of two points • Linear interpolation of two points • Centroid of multiple points

  26. Curve Fairing • Fairing by mid-point averaging • Moving each vertex towards the mid-point of its two neighbors • Using linear interpolation • : some value between 0 and 1 • Controls how far p’ moves away from p • Iterative fairing • At each iteration, update all vertices using locations in the previous iteration • A close to 1 will create oscillation • Typically

  27. Curve Fairing • Drawback • The initial shape is shrunk! 100 iterations 200 iterations 400 iterations

  28. Curve Fairing • Non-shrinking mid-point averaging [Taubin 1995] • Alternate between two kinds of iterations with different • Odd iterations: (positive) • Shrinking the shape • Even iterations: (negative) • : typically 0.1 • Expanding the shape

  29. Curve Fairing • The initial shape is no longer shrunk • The result converges with increasing iterations 100 iterations 200 iterations 400 iterations

  30. Surface Fairing • Fairing by centroid averaging • Moving each vertex towards the centroid of its edge-adjacent neighbors (called the 1-ring neighbors) • Linear interpolation • Iterative, non-shrinking fairing • Alternate between shrinking and expanding • Same choices of as in 2D • Each iteration updates all vertices using locations in the previous iteration centroid

  31. Surface Fairing • Example: fairing iso-surface of a binary volume

  32. Fairing • Implementation Tips • At each iteration, keep two copies of locations of all vertices • Store the smoothed location of each vertex in another list separate from the current locations • Building an adjacency table storing the neighbors of each vertex would be helpful, but not necessary • Initialize the centroid as {0,0,0} at each vertex, and its neighbor count as 0. • For each triangle, add the coordinates of each vertex to the centroids stored at the other two vertices and increment their neighbor count. • The neighbor count is twice the actual # of edge neighbors • For each vertex, divide the centroid by its neighbor count.

More Related