◩ Grafica e immagini

Modelli 3D e mesh: vertici, poligoni, normali e topologia

Com'è fatto un modello 3D: vertici, spigoli e facce, triangoli e quad, normali e smoothing, topologia pulita e formati di scambio come OBJ, STL e glTF.

Un personaggio di un videogioco, una sedia in un catalogo online, un edificio in una visualizzazione architettonica: nella grande maggioranza dei casi sono mesh poligonali, cioè superfici costruite con tanti piccoli poligoni piatti. È un modo di rappresentare la forma molto diverso da quello delle immagini 2D, ma con una logica semplice. Capirla aiuta a leggere un file 3D, a riconoscere i problemi di un modello e a preparare oggetti adatti al rendering, alla stampa 3D o all'uso in tempo reale.

Gli elementi di una mesh

Una mesh è composta da tre tipi di elementi:

  • vertici: punti nello spazio, ciascuno con coordinate (x, y, z);
  • spigoli (edge): segmenti che collegano due vertici;
  • facce: poligoni chiusi delimitati da spigoli.

Il file non memorizza "un cubo", ma otto vertici e sei facce che li collegano. Il modo più comune di farlo è un elenco di vertici seguito da un elenco di facce che li richiamano per indice. Questa struttura a indici evita di ripetere le coordinate dei vertici condivisi tra più facce.

Ecco un quadrato in formato OBJ, un formato testuale molto diffuso:

v 0 0 0
v 1 0 0
v 1 1 0
v 0 1 0
f 1 2 3 4

Le righe v sono i vertici, la riga f è una faccia che li collega nell'ordine indicato (gli indici in OBJ partono da 1).

Triangoli, quad e n-goni

  • Triangoli: sono sempre piatti, perché tre punti definiscono un piano. Le schede video disegnano solo triangoli: qualunque altra faccia viene suddivisa prima del rendering.
  • Quad (quadrilateri): preferiti durante la modellazione, perché formano griglie regolari, si suddividono in modo prevedibile e permettono di selezionare "anelli" di spigoli.
  • N-goni (poligoni con più di quattro lati): accettabili su superfici piatte, problematici su quelle curve, perché la loro triangolazione automatica può produrre ombreggiature strane.

Un quad i cui quattro vertici non stanno sullo stesso piano non è ben definito: a seconda di come viene diviso in due triangoli, la superficie risultante cambia.

L'ordine dei vertici e il verso della faccia

L'ordine in cui sono elencati i vertici di una faccia non è casuale. Per convenzione, osservando la faccia dal lato "esterno", i vertici sono disposti in senso antiorario (alcuni sistemi usano la convenzione opposta). Questo ordine stabilisce quale lato è il fronte.

Ha due conseguenze pratiche:

  1. molti motori scartano le facce viste da dietro (backface culling) per risparmiare calcoli: se una faccia ha l'ordine sbagliato, sparisce;
  2. l'ordine determina la direzione della normale, e quindi l'illuminazione.

Le normali

La normale è un vettore perpendicolare alla superficie, di lunghezza 1. È indispensabile per l'illuminazione: la quantità di luce che una superficie riceve dipende dall'angolo tra normale e direzione della luce.

Esistono due livelli di normali:

  • normali di faccia: una per poligono; producono un aspetto sfaccettato;
  • normali di vertice: una per vertice, spesso calcolate come media delle normali delle facce adiacenti. Interpolando le normali di vertice sulla superficie, il modello appare liscio anche con pochi poligoni.

Per avere spigoli vivi su un oggetto altrimenti liscio, come lo spigolo di un tavolo, si "dividono" i vertici lungo quel bordo: lo stesso punto nello spazio ha due normali diverse, una per lato. I programmi di modellazione gestiscono questo con impostazioni come smoothing groups, auto smooth o la marcatura degli spigoli come "netti".

Topologia pulita

La topologia descrive come sono collegati vertici e facce, indipendentemente dalla loro posizione. Una buona topologia rende il modello facile da modificare, animare e texturizzare. I problemi più comuni sono:

Problema Descrizione Conseguenza
Geometria non-manifold uno spigolo condiviso da più di due facce, o facce che si toccano in un solo vertice errori in stampa 3D e in molte operazioni
Buchi facce mancanti in una superficie che dovrebbe essere chiusa stampa 3D impossibile, rendering con "fughe"
Normali invertite facce orientate verso l'interno ombreggiature nere, facce invisibili
Vertici duplicati punti coincidenti non uniti cuciture visibili, smoothing errato
Facce degeneri triangoli con area zero artefatti e calcoli instabili

Prima di consegnare un modello conviene eseguire le funzioni di pulizia: unione dei vertici vicini, ricalcolo coerente delle normali, ricerca di geometria non-manifold.

Densità e livelli di dettaglio

Più poligoni significano più dettaglio, ma anche più memoria e più tempo di rendering. Nelle applicazioni in tempo reale si usano spesso più versioni dello stesso oggetto (LOD, livelli di dettaglio): quella dettagliata quando l'oggetto è vicino, versioni semplificate quando è lontano. I dettagli fini, invece di essere modellati, vengono spesso "dipinti" con texture e mappe di normali.

Formati di scambio

  • OBJ: testuale, semplice, molto supportato; geometria, coordinate di texture e normali, materiali in un file separato.
  • STL: solo triangoli, senza colori né texture; lo standard storico della stampa 3D.
  • PLY: usato spesso per scansioni 3D, può contenere colori per vertice.
  • glTF: formato moderno pensato per la consegna in tempo reale e sul web; include geometria, materiali, texture, animazioni.
  • FBX e USD: formati ricchi usati nelle pipeline di produzione per animazione e scene complesse.

In sintesi

  • Una mesh è fatta di vertici, spigoli e facce, di solito memorizzati con elenchi a indici.
  • Le schede video disegnano triangoli; i quad sono preferiti in modellazione.
  • L'ordine dei vertici stabilisce il fronte della faccia e la direzione della normale.
  • Le normali di vertice rendono lisce le superfici; spigoli netti richiedono vertici divisi.
  • Una topologia pulita evita buchi, geometria non-manifold e normali invertite.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche