introduzione
densità di campionamento
- si intende quanto fitto o dettagliato è il modo in cui vengono memorizzati gli attributi su una superficie 3D.
- in sintesi memorizzare per textel mi permette di avere una densità di campionamento maggiore ed è più desiderabile per rappresentare gli attributi relativi all’estetica finale del modello 3d in quanto più complessi e dettagliati
funzionamento texture mapping
- per fare l’associazione da S a T bisogna “squoiare” la pelle del modello 3d e stenderlo sul piano in 2D di coordinate uv. E’ possibile ripetere la mappatura per sistemare eventuali errori.
- esempio tessitura: la risoluzione corrisponde al numero di textel, che si solito è pari ad una potenza di 2 sia in verticale sia in orizzonatale
- il textel memorizza gli attributi relativa a quello specifico punto (come il pixel di uno schemo)
- LIMITI DI SPAZIO
- risoluzione espressa come potenza di 2
- sono caratteristiche imposti dalla GPU che supporta nativamente il rendering con texture
- premessa → canale
- esempio: l’attributo colore RGB ha 4 canali
struttura dati in ogni textel, ogni canale memorizza i parametri per esprimere un singolo attributo. Ogni textel ha in genere da 1 a 4 canali, quindi se ad esempio devo rappresentare altre informazioni come il rilievo, posso decidere di memorizzare le normali su un altra texture sovrapposta oppure di aggiungere canali nello stesso textel.
- dove memorizzo le posizioni uv dato il modello 3d?
- struttura piano uv
- Le coordinate texture sono “normalizzate” fra 0 e 1, ovvero ogni mesh mappa tutti i suoi textel su un piano lungo 1
struttura MIP-map
- è una serie di texture della stessa immagine ma con risoluzioni decrescenti che mi permette di avere un modello 3d multi-risoluzione
- memorizzarlo mi solo costa 1/3 in più rispetto all’originale texture
- Così quando l’oggetto è lontano posso usare risoluzioni più economiche. Ad esempio se ho un vaso rosso e bianco da lontano vedo un misto dei 2, quindi mi da la possibilità di comprimere ulteriormente la texture
- questa compressione in base allo scenario è svolta dall’hardware
algoritmi per mappare sulla uv map: DESCRIZIONE
- spesso i tagli sono realizzati in modo dall’aspetto irregolare dal computer
texture seam, texture atlas, normal map: 3 TIPI DI MAPPATURA
TESTURE SEAM = squoiatura connessa
- ogni vertice tagliato (seam = taglio) dalla mappa 3d viene duplicata nella mappa 2d
- Quindi nella mesh 3D ho un solo vertice A, ma nella texture ci sono A e A’, con coordinate UV diverse.
- texture atlas = squoiatura fino ad avere pezzi distinti (patches)
- normal map
- texture che campiona le normal(i) della superficie in modo da riprodurre dettagli ad alta frequenza, come gli avvallamenti
- lo stesso effetto dettagliato si potrebbe effettuare con un modello ad alta risoluzione di mesh senza necessità della texture (bensì memorizzo per faccia o vertice senza la texture) ma il primo metodo occupa meno spazio in memoria e aumenta le prestazioni della GPU
texture baking
Immagina di avere:
- 🧱 Un oggetto molto dettagliato (hi-res) → bello, ma pesante da usare
- 🧊 Una versione semplificata (low-res) → più leggera, ma senza dettagli
Il baking è un modo per:
👉 "Copiare" i dettagli visivi (es. luci, colori, rilievi) dell’oggetto ricco
👉 dentro un’immagine (texture)
👉 che poi viene appiccicata sul modello semplificato
👉 "Copiare" i dettagli visivi (es. luci, colori, rilievi) dell’oggetto ricco
👉 dentro un’immagine (texture)
👉 che poi viene appiccicata sul modello semplificato
Così ottieni:
✅ Oggetto leggero
✅ Oggetto leggero
✅ Ma che sembra dettagliato grazie alla texture "cotta"
OSSERVAZIONI
- questo texture sono applicabili a superfici che si comportano come “bucce di oggetti”: ad esempio ho un cavallo e rappresento la sua estetica superficiale, ma questo esclude pelurie, nuvole, fiamme…che nn partono da oggetti geometrici
- le tessiture possono essere fotografate, create da artisti, generate automaticamente a partire da modelli ad alta risoluzione