Polygonal Representations: intro + ess

Polygonal Representations: intro + ess

  • Ripasso concetto di processing nel ciclo produttivo: link
    • notion image
 
 

DEFINIZIONI

  • MESH → una faccia geometrica composta da un insieme di vertici (punti), edge (spigoli) e facce che definiscono la forma di un oggetto.
 

TIPOLOGIE

  • Triangle mesh: la struttura dati per il processing del modello 3D più utilizzato
    • detto anche simpliciale pk per 3 punti ci passa solo un triangolo, può di 4 può addirittura essere non complanare
  • quad-mesh: solo quadrilateri
  • quad dominant mesh: molti quadrilateri ma anche altro
  • polygonal mesh: numero generale di lati
💡
diagonal split
notion image
criteri mesh regolari
regolare ≠ 2 manifold
  • regolare = Ogni vertice ha la stessa valenza (es: 6 per tri-mesh, 4 per quad-mesh)
  • Two-manifold = fa0n connesso di facce per ogni vertice, massimo 2 facce adiacenti per ogni edge, ogni faccia segue lo stesso orientamento
notion image
  • Inoltre, in media, per una mesh triangolare chiusa, il numero di facce è circa il doppio del numero di vertici
notion image
 

CARATTERISTICHE

WIREFRAME: modello 3d meshato (non necessariamente del tutto)
  • anche per le nuvole di punti abbiamo visto una definizione di wireframe
notion image
conversione a triangle mesh: DIAGONAL SPLIT
  • oppure triangolarizzazione = trasformare un poligono in triangoli
  • le GPU sono progettate per lavorare con triangle mesh però si usano i quadrilateri solo pk i tech artist riescono con più semplicità a lavorare con questa forma, quindi dopo la fase di modellazione dell’artista, quando tocca al processing, i programmi fanno il completo diagonal split dei modelli 3d
  • Regola generale
    • notion image
COMPONENTI DI UNA MESH
notion image
  • campionare = registrare le caratteristiche di un modello 3d in un determinato punto. Queste caratteristiche sono organizzate in 3 COMPONENTI:
    • geometria
      • notion image
    • connettività e attributo
      • notion image
    • CONNETTIVITA’ → definiscei vertici che compongono la mesh
      • Ipergrafi : e non grafi, pk connettono più di 2 nodi???
    • GEOMETRIA: posizioni dei vertici (nuvola di punti)
    • ATTRIBUTI: rappresentano valori costanti su ogni faccia
RISOLUZIONE
  • aumentare poligoni lungo una superficie piatta nn aumenta la risoluzione pk nn apporta nuove informazioni più dettagliate
  • La risoluzione di una mesh può essere adattiva in base alla regione di superficie da campionare
    • notion image
  • questa risoluzione è adattiva: in alcune aree ho meno triangoli rispetto che in altri
    • notion image
COME RAPPRESENTARE UNA MESH
notion image
  • geometria = lista numerata di vertici espresse per coordinate
    • i vertici sono delle coordinate cartesiane
  • connettività = lista numerata di facce espresse per vertici]
    • le facce sono sequenze di indici che rappresentano i vertici
    • l’ordine delle cifre deve essere tutto in senso orario o antiorario per uno stesso modello 3d, mai a caso es. [1,5,2,3] non esiste (probabilmente serve per definire il senso delle normali)
    • esempio file (chiamato Index Mesh) contenente geometria (sx) e connettività (dx)
      notion image
      • faccia pentagonale
        • notion image
      • variante struttura file
        • notion image
  • attributi
    • posso memorizzarli per ogni faccio oppure per ogni vertice (nell’immagine evidentemente è per vertice)
    • per faccia: gli attributi sono costanti a tratti, ovvero sono discontinui passando da una faccia all’altra
    • per vertice: ho totale continuità
IN CHE MODO LA MEMORIZZAZIONE DEGLI ATTRIBUTI PER VERTICE CREA CONTINUITA?
notion image
  1. la GPU converte la mesh in triangle mesh (in generale è progettata per lavorare su questa struttura dati)
  1. ALGORITMO DI INTERPOLAZIONE PER EDGE E PER FACCIA
    1. SPIEGAZIONE ALGORITMO PER EDGE
      case study: devo conoscere il peso che 2 vertici adiacenti esercitano SU UN PUNTO r dell’edge che anno in comune
      definisco l’interpolazione lineare (o blend) per ogni triangle mesh del modello 3d (FORMULA)
      1. interpolazione lineare = combinazione lineare delle posizioni dei suoi vertici adiacenti (collegati da un edge)
      1. FORMULA ( 1-t ) * p + t * q = mix( p, q, t )
        1. Spiegazione
          • per definire gli attributi che garantiscono continuità, in un punto R dell’edge, devo definire le distanze (coordinate baricentriche) che separano R dai 2 vertici
            • Notare che 1-t + t = 1
            • sono coordinate pk a loro modo, identificano un punto
            • per semplicità li chiamo s=1-t e t rimane così
          • p e q sono i 2 vertici i cui attributi agiscono sul generico punto R che giace sul segmento
      come calcolo le CB dell’interpolazione lineare (FORMULA ESTESA)
      • se prima avevo: ( 1-t ) * p + t * q
      • semplificato nei coefficienti: s * p + t * q
      questi coefficienti si ottengono col rapporto tra distanze
       
      notion image
      Cosa sono d0 e d1? Distanza calcolate in modulo
      notion image
      • la dicitura 1-t e t, deriva appunto da d0 e d1
      • d0 = distanza da R dalla partenza (nota la formula → nel cap precedente abbiamo detto che il modulo esprime la lunghezza di un segmento)
      • d1 = distanza da R all’arrivo
      • R(s, t) → l’ordine conta, s è riferito a d0, t si riferisce a d1
      logica incrociata interpolazione lineare
      devo incrociare la CB con il vertice pk la distanza del segmento “dall’altra” parte determina il peso del punto
      • ESEMPIO: considera il punto p, più R si avvicina ad q, minore è la distanza che separa R da q, questa distanza mi serve per ridurre il peso esercitato dal vertice p, “dall’altra
      • se il punto sta in q allora p a peso 0
      SPIEGAZIONE ALGORITMO PER FACCIA
      case study: devo conoscere il peso che 3 vertici della mesh esercitano su un punto R sulla faccia
      devo adattare la formula di combinazione lineare ad un contesto con 3 vertici, per agire della faccia
      • se prima usavo s * p + t * q = mix( p, q, t) ora aggiungo il terzo vertice e ridefinisco il significato dei coefficienti
      • BLEND PER FACCIA: a0*v0 + a1*v1 + a2*v2
        • a0 + a1 + a2 = 1
          • notion image
      le CB a_k si definiscono in questo modo
      notion image
      • N.B.: i 3 triangoli minori A0, A1, A2 non sono le CB, devo prima dividerle ciascuno per A_tot
      • non è richiesto sapere come calcolare i 3 triangolini
      Formula per determinare il peso dei 3 vertici sul punto P nella faccia
      notion image
      • Il peso di ogni punto, nella formula, dipende dall’area dalla parte opposta: più si avvicina R ad un vertice v, maggiore è l’estensione dell’area che giace nel lato opposto
        • notion image
          COORDINATE BARICENTRICHE
        • ricordo che le CB rappresentano l’area
        • ogni punto nella faccia ha le sue CB
        • le più
        • ORA HO 3 COORDINATE BARICENTRICHE INTUITIVE
        • il punto v0 = (1,0,0)
        • il punto v1 = (0,1,0)
        • il punto v2 = (0,0,1)
        • il punto tra v1 e v0 = (0.5, 0.5, 0)
        • OSSERVAZIONI
        • notare che nuerare i vertici è fondamentale per poi appore la sequenza ordinata delle voordinate: v(a0, a1, a2)
        • ogni CB dipende dall’area dall’”altra parte”
        • Una volta compreso come si definiscono le CB, ci sono casi intuitivi
osservazione breve
notion image

 
MESH SU UN PROGRAMMA (inutile)
notion image
  • abbastanza intuitivo, ma nn importante
 
 
ESERCIZI
ESS DI DETERMINAZIONE COORDINATE BARICENTRICHE
notion image
  • ultima domanda: (1/4, 3/3, 0)
notion image
  • attenzione le coordinate di P(s, t) sono P(4/6; 2/6): ricordo che si incrocia (non solo nella formula)
    • notion image
notion image
  • pitagora
notion image
  • TIP: per calcolare n coordinate baricentriche di un punto, se ne ho calcolate n-1 con la formula, l’ultima la calcolo con una differenza: 1 - (le altre coordinate)
 
SINTESI
  • Wireframe → mesh → vertici, spigoli, facce
come rappresentare i dati della mesh
  • geometria = lista numerata di vertici espresse per coordinate
    • i vertici sono delle coordinate cartesiane
  • connettività = lista numerata di facce espresse per vertici]
    • le facce sono sequenze di indici che rappresentano i vertici
  • attributi e metodi di memorizzazione
  • Tipologie di mesh
  • tipologie di mesh e diagonal split
  • poche terminologie sulla risoluzione
  • memorizzazione attributi per vertice