Geometry 3 Mesh Operation

by @SankHyan24

Mesh Subdivision:

  1. Loop Subdivision:(used only on triangle)
    • Add the number of triangle
    • Assign new vertex positions according to weight
      • New/old vertices updated differently
      • For new vertices: Updated to $\frac{3}{8}(A+B)+\frac{1}{8}(C+D)$
      • For old vertices: Updated to

$(1-nu)\times original position + u neighbor position sum$

$n: vertex degree$

$u:\frac{3}{16} if n=3, \frac{3}{8n} otherwise $

  1. Catmull-Clark Subdivision (General Mesh)
    1. Definition:
      • Quad face
      • Non-quad face
      • Extraordinary vertex, $degree\neq 4$
    2. Subdivision once:
      • Chose every edge middle vertices and face middle vertices.
      • Extraordinary vertex will be added to the non-quad face number, the Non-quad face disappeared.
      • Subdivision again again and again.
    3. Point Update, a little complex, by edge vertex and face vertex. (by average too)
    4. Convergeb=nce: Overall Shape and Creases 最后的结果会有折痕

Mesh Simplification

  1. Goal: reduce number of mesh elements while maintaining the overall shape. (Like Mipmap anyway, but more difficult)
  2. Collapsing An Edge. 边坍缩
    • Quadric Error Metrics (二次误差度量)
      • 类似最小二乘
    • 去掉边,变成一个点,调整该点的位置,让二次度量误差最小
    • Implement: Heap,维持最小度量误差的边,更新相邻的边的最小度量误差
      • 贪心算法