Skip to content

It's a notebook of Digital Geometry Processing, Xiao-Ming Fu USTC 2020

License

Notifications You must be signed in to change notification settings

fusheng-ji/Digital_Geometry_Processing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

typora-root-url
./

Digital_Geometry_Processing

2022-03-08_11-11

Official Page: DGP_2020_spring

Video: bilibli

Code: github

All slides: slides

Goal: Basic knowledge about polygon mesh processing

Reference:

Geometry Representations

Point cloud

$\mathcal{p}={p_1,...,p_{N_v}},p_i=\begin{pmatrix}x_i\y_i\z_i\end{pmatrix}\in \mathcal{R}^3$

A set of data point in some coordinate system

Scanner

2022-03-09_20-29

2022-03-09_20-19

Depth camera

2022-03-09_20-28

2022-03-09_20-21

Signed distance field (SDF)

The distance of a a given point $x$ from the boundary of $\Omega$:

$$d(x,\partial\Omega)=\mathrm{min}_{y\in \partial\Omega}d(x,y)$$

$$f(x)=\left{\begin{matrix}-d(x,\partial \Omega)&\text{if }x\in \Omega\d(x,\partial \Omega)&\text{if }x\in \Omega^c\end{matrix}\right.$$

2022-03-09_20-34

Truncated signed distance field (TSDF)

  • Less memory than SDF

2022-03-09_20-38

Implicit function

Singed distance field is also an implicit function

2022-03-09_20-40

2022-03-09_20-44

Grid

Pixel, Voxel

  • Image
    • 2022-03-09_20-50
  • Voxel
    • 2022-03-09_20-50_1
  • Quad mesh
    • 2022-03-09_20-50_2
  • All-Hex mesh
    • 2022-03-09_20-51

Quad-tree, Octree

2022-03-09_20-51_1

Partitioning rule
  • The commonly-used octant partitioning depends on:
    • the existence of the shape inside the octant
    • the partitioning is performed until the max tree depth is reached

2022-03-09_20-56

Patch-based octree

2022-03-09_20-57

2022-03-09_21-12

Mesh

Triangle Mesh

  • A collection of triangles
    • without any particular mathematical structure
  • Each triangle: a segment of a piecewise linear surface representation
  • Geometric component
    • Discrete vertices : $V={v_1,...,v_{N_V}}$
  • Topological component
    • Triangle: $F={f_1,...,f_{N_F}}$
    • Edge: $E={e_1,...,e_{N_E}}$

2022-03-09_21-28

2-manifold

2022-03-09_21-44

Euler formula

$g$ = genus

2022-03-09_21-45

Barycentric coordinate

2022-03-09_21-46

Tetrahedral Mesh

2022-03-09_21-46_1

Data structure

2022-03-09_21-47

Halfedge

2022-03-09_21-48

2022-03-09_21-48_1

2022-03-09_21-48_2

2022-03-09_21-49

Implementation thinking

  • Code: halfedge data implementation
    • structure
    • std::vector

File format

Obj

index begin from 1 not 0

2022-03-09_21-54

Off

2022-03-09_21-55

2022-03-09_21-55_1

Homework 1

  • shortest path
    • Input: two vertices
    • Output: a edge path connecting the input two vertices with shortest length
    • How about the geodesic path?
  • Minimal spanning tree
    • Input: some (>2) vertices
    • Output: a tree passing through all input vertices with minimum length
    • algorithm
      • For each pair of terminal points $V_a\in \mathcal{P}$ and $V_b\in \mathcal{P}$, compute the shortest path $\mathcal{C}_{a,b}$ between $V_a$ and $V_b$ on $\mathcal{g}$
      • Construct a complete graph with the node set $\mathcal{P}$. The weight of each edge $\bar{V_a V_b}$ is equal to the length of $\mathcal{C}_{a,b}$
      • Construct an MST for this shortest distance graph
      • All mesh edges in the shortest paths that correspond to edges in the MST form an approximate Steiner tree for $\mathcal{g}$

Discrete Differential Geometry

Mesh Smoothing

Mesh Parameterizations

Deformation

Coordinates

Repairing

Mapping

Polycube

Surface Mapping

Morphing

Atlas Generation

Simplification

Spherical Parameterizations

Directional Field

Remeshing

Delaunay Triangulation

About

It's a notebook of Digital Geometry Processing, Xiao-Ming Fu USTC 2020

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published