Polygonal Mesh: mesh processing (coarseninig)

Polygonal Mesh: mesh processing (coarseninig)

Mesh Simplification (o mesh coarsening): DESCRIZIONE
  • case study: conversione da mesh hi-res a mesh low-res (detta anche low-poly mesh)
  • PRO: minore è la risoluzione maggiore è la velocità di geometry processing
  • CONTRO: la modifica introduce un errore geometrico rispetto alla mash originale (ma nn sempre, se la superficie ha una geometria piana nn cambia nulla)
    • alcuni vertici sono fondamentali per preservare la forma geometrica-visuale rispetto ad altri
  • Osservazione:
    • in una nuvola di punti, bastava scegliere un sottoinsieme
    • Per mesh, è più complicato: non semplificare senza danneggiare le proprietà della mesh (es. chiusura)
      • notion image
ALGORITMO DI MESH COARSENING TOTALE: VERTEX CLUSTERING
(approccio volumetrico a reticolo per la mesh simplification)
Spiegazione algoritmo passo-passo
  1. immagino di avere la mia mesh immersa in un reticolo 3d con i punti disposti a cubetti tutti uguali che mi permette di suddividere la mesh
  1. per ogni cubetto ho in input i vertici che esso contiene
  1. se in input ho più di un vertice in un singolo cubetto
    1. li sostituisco con un vertice (output) che rappresenta la posizione media di tutti i vertici di partenza
  1. lavorando in questo modo i vertici devo mantenere la coerenza delle mesh triangolari
    1. se nel processo, una mesh ha visto tutti i suoi vertici essere sostituiti: implicitamente ho creato un nuovo triangolo (metti caso che in un cubetto ho 2 vertici, uno dei quali è parte di un triangolo con i vertici tutti in posizioni distinte, in tal caso, ottengo un nuovo triangolo)
    2. se il triangolo aveva 2 o 3 vertici in un solo cubetto, quel triangolo lo elimino completamente, pk il punto 3 dell’algoritmo (sostituzione) non mi permette di “aggiornare” il triangolo
OSSERVAZIONE
  • Il parametro k (dimensione dei cubetti) controlla quanto la mesh viene semplificata → più è grande piè devo ridurre la risoluzione pk il singolo cubetto aumenta volume
SEMPLIFICAZIONE LOCALE
Edge collapse: rimuovi un edge e fondo i due vertici estremi ad esso (elimina l’edge)
notion image
  • Se la mesh è 2 manifold ho eliminato
    • 2 facce
    • un vertice
    • 3 edge
Vertex removal, face merge (eliminano rispettivamente il vertice e la faccia)
notion image
  1. Elimino
    1. il vertice: e quindi tutti gli edge ad esso collegato)
    2. oppure la faccia: e quindi tutti gli edge e vertici che lo compongono e tutti gli edge collegati ai vertici eliminati
  1. ne ottengo una mesh di numero edge pari alla valenza del vertice eliminato
    1. valenza = numero di edge collegati ad un vertice
  1. quindi applico il diagonal split pk voglio i triangoli
    1. un poligono con n lati (valenza del vertice eliminato) lo ritassello con n-2 triangoli (ripasso)
OSSERVAZIONI p1
  • le operazioni locali sono adattive pk scelgo io cosa eliminare (ovvero le zone che mi creano il minor errore geometrico), il vertex clustering non è adattivo ma toale
  • singola operazione locale: può cambiare sia la geometria (lista vertici) sia la connettività (lista facce), ma solo in un intorno ristretto.
  • Iterazione di operazioni locali: ripetere queste piccole operazioni, una alla volta, finché non raggiungi l’ obiettivo prefissato, che può essere:
    • ridurre il numero totale di vertici/poligoni
    • mantenere un errore geometrico sotto una certa soglia
OSSERVAZIONI p2
notion image
notion image
Quella non adattiva può rovinare il modello, vedi l’occhio
case study: meshing (diversi algoritmi in base alla struttura dati di partenza)
  • dato una modello 3D, inizialmente non rappresentato come una mesh poligonale, produrre una sua rappresentazione di tipo mesh poligonale
    • es: meshing di una nuvola di punti
case study: re-meshing / retopology (cambio tipo di mesh) → algoritmi o manualmente
  • data una superficie già rappresentata come una mesh, costruire una rappresentazione mesh…diversa
notion image
da irregular tri-mesh a regular quad-mesh
da irregular tri-mesh a regular quad-mesh