1 / 35

Dual Marching Cubes

Dual Marching Cubes. Scott Schaefer and Joe Warren. Perform marching cubes over a sparse dual grid. Goals: Capture thin features & Use fewer triangles. Dual Marching Cubes (440 tris). Marching Cubes (67k tris). Dual Contouring (17k tris). Process Overview:.

bessie
Télécharger la présentation

Dual Marching Cubes

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. Dual Marching Cubes Scott Schaefer and Joe Warren Perform marching cubes over a sparse dual grid

  2. Goals: Capture thin features & Use fewer triangles. Dual Marching Cubes (440 tris) Marching Cubes (67k tris) Dual Contouring (17k tris)

  3. Process Overview: 1. Octree defines resolution 2. Grid vertex placed per octree cell at features of signed distance function 3. Dual grid edges and faces are found 4. Perform marching cubes over dual grid

  4. Process Overview: 1. Octree defines resolution 2. Grid vertex placed per octree cell at features of signed distance function 3. Dual grid edges and faces are found 4. Perform marching cubes over dual grid

  5. What are features of a signed distance function? Example: Red line = isosurface

  6. Features go where planes collide Example: Grey shape = distance function

  7. Thin shape will ‘grab’ vertices

  8. Process to place vertices 1. Approximate surface at sample points with planes f(x) Ti xi f(x) x 1d example with one sample point

  9. Process to place vertices 2. Find vertex position to minimize the Error Quadric f(x) Ti xi f(x) x Vertex v at position x’

  10. f(x) Ti(x’) Value predicted from ith sample Ti Actual value of f(x,y,z) w=f(x’) xi f(x) x Vertex v at position x’

  11. f(x) Ti(x’) (w-Ti(x’))2= Error2 from this sample Ti w=f(x’) xi (Normalize by slope ofTi ) f(x) x Vertex v at position x’

  12. Error min is here-ish f(x) Ti Tj xj xi f(x) x

  13. Features of distance field are not features of the surface! f(x) Note that the 1d ‘surface’ is here f(x) x

  14. Features are often near medial axis

  15. Result of minimization: 1 vertex per cell (make sure vertex is in its own cell!)

  16. Process Overview: 1. Octree defines resolution 2. Grid vertex placed per octree cell at features of signed distance function 3. Dual grid edges and faces are found 4. Perform marching cubes over dual grid

  17. Octree Generation Generate(Node): List samples = Sample(Node) if (Error(samples) > thresh): Generate(Children(Node)) Sample(Node): Fine regular sampling? Random sampling? Error(samples): Error Quadric

  18. Process Overview: 1. Octree defines resolution 2. Grid vertex placed per octree cell at features of signed distance function 3. Dual grid edges and faces are found 4. Perform marching cubes over dual grid

  19. Dual grid looks like this:

  20. dual grid: Faces become Vertices Connect Adjacent Faces’ Vertices

  21. Border vertices are special inserted where needed

  22. See paper for algorithm

  23. Process Overview: 1. Octree defines resolution 2. Grid vertex placed per octree cell at features of signed distance function 3. Dual grid edges and faces are found 4. Perform marching cubes over dual grid

  24. Perform marching cubes

  25. Perform marching cubes Pretend you have all 8 corners for every ‘cube’ in the dual grid

  26. Perform marching cubes Should have used a finer octree

  27. Problem: slivers

  28. Problem: slivers Dual grid vertices near isosurface Isosurface w=0

  29. Solution: push vertices to surface Dual grid vertices near isosurface Isosurface w=0

  30. Result of sliver elimination Without sliver elim With sliver elim

  31. Congratulations, you’re done.

  32. Limitations? Paper shows thin features work well But what about multiple adjacent thin features?

  33. Element inversions? Can faces of the dual grid become inverted?

  34. Element inversions? Can faces of the dual grid become inverted?

  35. That’s all. Questions?

More Related