mesh simplification mesh simplification
play

Mesh Simplification Mesh Simplification 1 Spring 2010 The The - PowerPoint PPT Presentation

Mesh Simplification Mesh Simplification 1 Spring 2010 The The Law The The Law Law of Law of of Cosine of Cosine Cosine Cosine Here are some commonly used formulas. First, we learn that c 2 = a 2 + b 2 2 ab cos( ), where


  1. Mesh Simplification Mesh Simplification 1 Spring 2010

  2. The The Law The The Law Law of Law of of Cosine of Cosine Cosine Cosine � Here are some commonly used formulas. � First, we learn that c 2 = a 2 + b 2 – 2 ab cos( θ ), where ( ) θ is the angle opposite to side c . � Vector form: |X − Y| 2 = |X| 2 +|Y| 2 − 2|X| ⋅ |Y|cos( θ ). 2|X| |Y|cos( θ ). � Vector form: |X Y| |X| |Y| � Note that |X| 2 = X ⋅ X, where ⋅ is the inner product. � Since (X − Y) ⋅ (X − Y) =X ⋅ X+Y ⋅ Y-2X ⋅ Y, we have X ⋅ Y � Si (X Y) (X Y) X X+Y Y 2X Y h X Y = |X| ⋅ |Y|cos( θ ). θ θ b a X Y 2 X − Y c

  3. Projection Projection Projection of Projection of a Vector of a Vector Vector to Vector to to Another to Another Another Another � Let A and B be two vectors. We wish to compute the length of projecting A to B. � It is obvious that the length is L = |A|cos( θ ) . � Since A ⋅ B=|A| ⋅ |B|cos( θ ), we have � Since A B |A| |B|cos( θ ), we have ⋅ A B B = = θ θ = = = = A A A A A A | | | cos( ) | | cos( ) | | | | L L ⋅ A B B | | | | | A θ θ B L = |A|cos( θ ) 3

  4. Point Point to a Plane Point Point to to a Plane Plane Distance: lane Distance: Distance: 1/2 Distance: 1/2 1/2 1/2 � Let a plane P be represented by a base point B and a normal vector n, where |n| = 1. � Compute the distance from a point X to P . � Projecting X to n yields the distance |X B|cos( θ ). � Projecting X to n yields the distance |X − B|cos( θ ). � Since cos( θ )=(X − B) ⋅ n/(|X − B| ⋅ |n|)=(X − B) ⋅ n/|X − B|), the distance is simply (X − B) ⋅ n the distance is simply (X − B) ⋅ n. X |X − B|cos( θ ) n X − B θ Compute the perpendicular foot B B from X to plane P . Easy! P 4

  5. Point Point to Plane Point Point to to Plane Plane Distance: lane Distance: Distance: 2/2 Distance: 2/2 2/2 2/2 � Sometimes the plane is given by ax + by + cz + d = 0, where a 2 So e es e p e s g ve by ax by cz d 0, w e e a + b 2 + c 2 = 1 ( i.e ., normalized). � The normal vector of this plane is n = < a , b , c >. p � If B = < u , v , w > is a point in this plane, we have au + bv + cw + d = 0 and au + bv + cw = - d . � The distance from X = < x , y , z > to this plane is (X – B) • n. � Plugging B and n into this equation yields: (X - B) • n = (< x , y , z > - < u , v , w >) • < a , b , c > = < x , y , z > • < a , b , c > - < u , v , w > • < a , b , c > < x y > • < a b c > < u v w > • < a b c > = ( ax + by + cz ) – ( au + bv + cw ) = ( ax + by + cz ) – (- d ) ( ax by cz ) ( d ) = ax + by + cz + d 5

  6. Volume Volume of Volume Volume of of a Parallelepiped: of a Parallelepiped: Parallelepiped: 1/2 arallelepiped: 1/2 1/2 1/2 � A parallelepiped is defined by three vectors u, v and w. p e ep ped s de ed by ee vec o s u, v d w. w u v v � The parallelogram defined by u and v has an area of |u| ⋅ |v|sin( θ ), which is the length of vector u × v, where θ is | | | | ( ), g , the angle between u and v. area = base × height = |u|( |v|sin( θ ) ) v |v|sin( θ ) = |u||v|sin( θ ) = |u × v| θ u u 6

  7. Volume Volume of Volume Volume of of a Parallelepiped: of a Parallelepiped: Parallelepiped: 2/2 arallelepiped: 2/2 2/2 2/2 � The volume of a parallelepiped is the product of its base e vo u e o p e ep ped s e p oduc o s b se area and its height. � The base area is |u × v| . | | � Projecting w to u × v yields the height (u × v) ⋅ w/|u × v|. � Therefore, the volume is: , = × Volume BaseArea Height u × v w w × ⋅ u v w ( ) = × u v | | v (u × v) ⋅ w × u v | | u u = × ⋅ u v w ( ) 7

  8. Volume Volume of Volume Volume of of a Tetrahedron of a Tetrahedron Tetrahedron etrahedron � A tetrahedron is also defined by three vectors u, v and w. e ed o s so de ed by ee vec o s u, v d w. � The volume of a tetrahedron is (BaseArea × Height)/3. � Base area is half of the parallelogram defined by u and v, � Base area is half of the parallelogram defined by u and v, and is equal to |u × v|/2. � Height is our old friend, projecting w to u × v, which is g , p j g , (u × v) ⋅ w/|u × v|. � Therefore, the volume is u × v 1 = × Volume BaseArea Height w 3 × ⋅ ⎛ ⎛ ⎞ ⎞ u v w 1 1 ( ) v (u × v) ⋅ w/| u × v| = × u v ⎜ | | ⎟ × u ⎝ ⎠ u v 3 2 | | 1 ( 1 = × ⋅ u v w ) 8 6

  9. Mesh Mesh Simplification: Mesh Mesh Simplification: Simplification: 1/2 Simplification: 1/2 1/2 1/2 � Mesh simplification/decimation is a class of � M h i lifi i /d i i i l f algorithms that transform a given polygonal mesh into another with fewer faces edges and mesh into another with fewer faces, edges, and vertices. � The simplification process is usually controlled � The simplification process is usually controlled by a set of user-defined quality criteria that can preserve specific properties of the original preserve specific properties of the original mesh as much as possible ( e.g ., geometric distance, visual appearance , etc). , pp , ) � Mesh simplifications reduces the complexity of a given mesh. g 9

  10. Mesh Mesh Simplification: Mesh Mesh Simplification: Simplification: 2/2 Simplification: 2/2 2/2 2/2 � Si � Simplification schemes usually work iteratively lifi i h ll k i i l ( i.e ., removing a vertex/edge at a time) and can be reversed Thus one can transmit the final be reversed. Thus, one can transmit the final result followed by the “reversed” operators. � A mesh simplification scheme can be viewed as a � A mesh simplification scheme can be viewed as a decomposition operator to obtain a low frequency component ( i.e ., the decimated mesh) and a high component ( i.e ., the decimated mesh) and a high frequency component ( i.e ., the difference between the original and decimated meshes). g ) Then, a reconstruction operator can perform the inverse decimation to recover the original data from its low frequency component. 10

  11. Mesh Mesh Simplification Mesh Mesh Simplification Simplification Approaches Simplification Approaches Approaches pproaches � Vertex Clustering: It is in general fast, robust and of O ( n ), where n is the number of vertices; however, quality is not always satisfactory. � Incremental Decimation: It can deliver higher g quality meshes in most cases, and can take arbitrary user-defined criteria into account according to how the next removal operation is chosen. However, complexity may be O ( n log 2 n ) or 2 even O ( n 2 ). � Resampling: The most general approach; however, esa p g: e ost ge e a app oac ; oweve , new samples may be freely distributed. 11

  12. Vertex Vertex Vertex Clustering: Vertex Clustering: Clustering: 1/4 lustering: 1/4 1/4 1/4 � Gi � Given a tolerance ε > 0, the t l > 0 th bounding space of the given mesh is partitioned into cells h i titi d i t ll with diameter ≤ ε . � For each cell a representative vertex is computed (will talk ε ε about this later). If a cell has more than one vertices, they ε are all mapped to this representative vertex representative vertex. 12

  13. Vertex Vertex Vertex Clustering: Vertex Clustering: Clustering: 2/4 lustering: 2/4 2/4 2/4 � Then, degenerate triangles � Th d i l are removed. � If P � If P and Q are the d Q h representative vertices of p p 0 , p 1 , …, p m and q 0 , q 1 , …, p p and q q q n , respectively, P and Q are connected in the are connected in the decimated mesh if at least one pair of vertices (p i ,q j ) p (p i ,q j ) solid: original mesh g was connected in the dotted: new mesh original mesh. 13

  14. Vertex Vertex Clustering: Vertex Vertex Clustering: Clustering: 3/4 lustering: 3/4 3/4 3/4 � The resulting mesh may not be a 2-manifold even though the original one is, because a portion of a surface could collapse to a point. � However, it can reduce the complexity of a mesh significantly, and guarantee solid: original mesh g a global approximation of dotted: new mesh the original mesh. 14

  15. V Ver V ertex t t ex Cl Cl Clus uster t t ering: i i ng: 4/4 4/4 4/4 4/4 � How to compute those representatives? � The easiest way is to average the vertices in the same cell. If P 1 , P 2 , …, P k are vertices in the same cell, then the representative is P = (P 1 + P 2 + … + P k )/ k . � O � Or, depending on the importance of each vertex (of d di th i t f h t ( f the mesh) one might assign a weight w i ≥ 0 to vertex P i . Then, the representative of P 1 , P 2 , …, P k in the P i Then the representative of P 1 P 2 P k in the same cell is their weighted average: + + + P P P P … P P w w w = P 1 1 2 2 k k + + + … w w w 1 2 k 15

  16. Incremental Incremental Decimation: Incremental Incremental Decimation: Decimation: 1/2 Decimation: 1/2 1/2 1/2 � Incremental algorithms remove one vertex or edge at a time based on user-specified criteria. � Criteria can be binary or continuous. � Binary criteria determine if a vertex is allowed to � Binary criteria determine if a vertex is allowed to remove ( i.e ., yes or no), while a continuous one rates the quality of the mesh ( i.e ., roundness of rates the quality of the mesh ( i.e ., roundness of triangles, small normal changes between neighboring triangles) before/after removal. neighboring triangles) before/after removal. 16

Recommend


More recommend