1 / 18

CS 395: Adv. Computer Graphics

CS 395: Adv. Computer Graphics. Week 6 Overview: Shape Manipulation Watt : Chapter 2.5 Jack Tumblin jet@cs.northwestern.edu. Shape Manipulation. How can we: Simplify a shape? 10Mpoly  500 poly? Check Visibility? discard many Mpolys never seen?

fredj
Télécharger la présentation

CS 395: Adv. Computer Graphics

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. CS 395: Adv. Computer Graphics Week 6 Overview:Shape Manipulation Watt : Chapter 2.5 Jack Tumblin jet@cs.northwestern.edu

  2. Shape Manipulation How can we: • Simplify a shape? 10Mpoly  500 poly? • Check Visibility? discard many Mpolys never seen? • Make a shape from a ‘cloud’ of points? • Warp from Shape A to Shape B?

  3. Model Simplification The idea: • It should look the same, but… • have fewer polys. • In general, it works! • Only limited user control. • Some surface mappings handled poorly. Watson 2000

  4. Model Simplification Many 3D Models are too big to: • Display interactively • Display at all (!) Sources: • 3D scanning – Laser Time-of-Flight Reflectometry • Visualization of scientific data • Huge CAD/CAM efforts: • 100+ man-years: plants, ships and planes • Procedural models: grass, trees, cities, etc.

  5. Edge Collapse / Vertex Split Elemental Simplify Operation (by consensus) • ‘Edge Collapse’ • choose edge • 2 old 1 new vertex • update edges, faces • ‘Vertex Split’ • choose edge pair • 1 old2new vertices • update edges, faces

  6. Model Simplification Basic approach: • Choose a simplifier: (e.g. edge collapse) • Choose a quality measure; (a 'cost' for the operator) • Use a greedy algorithm: (edge collapse example) • Sort edges by cost • Loop until simple enough: • Collapse least-cost edge • Re-sort affected nearby edges Quick Taxonomy of simplifying methods: Spatial Clustering: Merge Spatial-nearby clusters of verts, edges, faces Earliest (Rossignac); very fast, but poor quality Pairwise merge algorithms: Merge adjacent face pair, edge pair, or vertex pair(edge collapse: Hoppe, Garland) Slower, but often best quality Can be tricky for non-triangle faces Opinion: only edge collapse used now. Pruning algorithms: vertex deletion (& delete adjacent edges) edge deletion (& delete empty vertices) face deletion (& replace with a vertex) Opinion: Research community converged on edge collapse Surface fitting Related Problems Level of detail (LOD) How to use simplified models in interactive display? Measuring visual fidelity Which primitive simplification preserves appearance? Surface fitting: We have a cloud of points from a scanning apparatus How do we turn these points into a surface model? Basic example (Turk & Levoy) Make multiple partial scans Fit surface to each scan (fairly simple) Repeat Choose two partial scans Align them to one another using iterated closest points Join the surfaces topologically Tune the local geometry with comparisons to point cloud Until all partial scans are joined Critique +: widely used -: didn’t address reflectance & surface properties -: what about parametric surfaces? Shape comparison: Problem How to sort & and query for shapes? Basic example (Osada, Funkhouser et al) Define a shape function Should be invariant under rigid transforms, small detail variation E.g. distance between two random model points E.g. volume of tetrahedron between four model points Use it to create a shape distribution Make a lot of random samples of shape function Form a histogram Fit a piecewise linear probability distribution function Result, a vector with N integers Compare shape distributions Use existing function comparison approaches They use Minkowski sum: Shape distr A, B sum((A-B)^N)^(1/N) Critique +: Good for rough classification -: Not good at details Subproblems What is a good shape function? How to query?

  7. Model Simplification: Taxonomy I Quick Taxonomy of simplifying methods: • Spatial Clustering: • Merge chosen clusters of verts, edges, faces • Earliest (Rossignac); • easy, very fast, but poor quality • Pairwise merge algorithms: • Merge adjacent face pair, edge pair, or vertex pair (edge collapse: Hoppe,Garland) • Slower, but often best quality • Can be tricky for non-triangle faces .

  8. Model Simplification:Taxonomy II • Pruning algorithms: • vertex deletion (& delete adjacent edges) • edge deletion (& delete empty vertices) • face deletion (& replace with a vertex) • too crude; changes too large! • Opinion: Research community converged on edge collapse; only edge collapse matters anymore!

  9. Related Problems • Level of detail (LOD) • How to use simplified models in interactive display? • Measuring visual fidelity • Which simplifier best preserves the visual appearance? • Surface fitting: • 3D scanner gives a cloud of points • How do we make a surface model?

  10. Related Problems • Mesh Zippering (Turk & Levoy 1996) • Make multiple partial scans • Fit surface to each scan (fairly simple) • Choose two partial scans • Align them using iterated closest points • Join the surfaces topologically • Tune the local geometry; compare to point cloud • Critique +: widely used • -- didn’t address reflectance & surface properties • -- what about parametric surfaces?

  11. Related Problems • Basic example (Turk & Levoy) • Make multiple partial scans • Fit surface to each scan (fairly simple) • Choose two partial scans • Align them using iterated closest points • Join the surfaces topologically • Tune the local geometry; compare to point cloud • Critique +: widely used • -- didn’t address reflectance & surface properties • -- what about parametric surfaces? Shape comparison: Problem How to sort & and query for shapes? Basic example (Osada, Funkhouser et al) Define a shape function Should be invariant under rigid transforms, small detail variation E.g. distance between two random model points E.g. volume of tetrahedron between four model points Use it to create a shape distribution Make a lot of random samples of shape function Form a histogram Fit a piecewise linear probability distribution function Result, a vector with N integers Compare shape distributions Use existing function comparison approaches They use Minkowski sum: Shape distr A, B sum((A-B)^N)^(1/N) Critique +: Good for rough classification -: Not good at details Subproblems What is a good shape function? How to query?

  12. Surface fitting Surface fitting: Find surface from a cloud of points Hoppe ‘94

  13. 3D Morphing Change shape A to shape B (Turk/O’Brien99)

  14. Model Simplification Basic approach Choose a simplifier: e.g. edge collapse Choose a quality measure; a 'cost' for the operator Use a greedy algorithm: (edge collapse example) Sort edges by cost Loop until simple enough: Collapse least-cost edge Re-sort affected nearby edges Quick Taxonomy of simplifying methods: Spatial Clustering: Merge Spatial-nearby clusters of verts, edges, faces Earliest (Rossignac); very fast, but poor quality Pairwise merge algorithms: Merge adjacent face pair, edge pair, or vertex pair(edge collapse: Hoppe, Garland) Slower, but often best quality Can be tricky for non-triangle faces Opinion: only edge collapse used now. Pruning algorithms: vertex deletion (& delete adjacent edges) edge deletion (& delete empty vertices) face deletion (& replace with a vertex) Opinion: Research community converged on edge collapse Surface fitting Related Problems Level of detail (LOD) How to use simplified models in interactive display? Measuring visual fidelity Which primitive simplification preserves appearance? Surface fitting: We have a cloud of points from a scanning apparatus How do we turn these points into a surface model? Basic example (Turk & Levoy) Make multiple partial scans Fit surface to each scan (fairly simple) Repeat Choose two partial scans Align them to one another using iterated closest points Join the surfaces topologically Tune the local geometry with comparisons to point cloud Until all partial scans are joined Critique +: widely used -: didn’t address reflectance & surface properties -: what about parametric surfaces? Shape comparison: Problem How to sort & and query for shapes? Basic example (Osada, Funkhouser et al) Define a shape function Should be invariant under rigid transforms, small detail variation E.g. distance between two random model points E.g. volume of tetrahedron between four model points Use it to create a shape distribution Make a lot of random samples of shape function Form a histogram Fit a piecewise linear probability distribution function Result, a vector with N integers Compare shape distributions Use existing function comparison approaches They use Minkowski sum: Shape distr A, B sum((A-B)^N)^(1/N) Critique +: Good for rough classification -: Not good at details Subproblems What is a good shape function? How to query?

  15. Other Shape Manipulations Deforming Polygonal Shapes: ‘Bones’ and skin Space Warp(don't bend object; bend space) 'Growing Skin‘ Deforming Implicit surfaces (bend space)

  16. Combinatoric Explosion How many different ways to simplify? TOO MANY! • (# of vertex removal sequences) *(valence) • Recall that valence== #edges that end at a vertex. • or formally, O(N! * N/E) • Also; O(N) new vertex placements Good Simplification Quality metrics needed!

  17. Simplification Hierarchy What is it? • Binary Tree of Edge Collapses • Graph node==vertex, Graph Edge==collapse • Leaf node==original mesh vertex; • Parent node == new vertex from edge collapse Why use it? • Can pre-compute it • Load entire graph (cheap) • Graph Cut quickly selects a pre-computed,locally - simplified model

  18. Local Simplification Many Polygons (far from the graph root) Few Polygons (near the graph root)

More Related