Modello 3D texturizzato: OBJ, GLB e 3D Tiles da WebODM
In questa pagina
Il modello 3D texturizzato è l'output più spettacolare di WebODM e quello che i clienti capiscono al primo sguardo. È anche il più frainteso: non è una misura, è una rappresentazione. Qui vedi cosa contiene, come influenzarne qualità e peso, e come usarlo fuori da WebODM. Termini nel glossario.
1. Dalla nuvola alla mesh texturizzata#
Il motore (ODX in WebODM, ODM nella distribuzione OpenDroneMap) parte dalla nuvola di punti e costruisce una mesh: una superficie continua fatta di triangoli che collega i punti. Poi proietta le foto originali su quella superficie e produce le texture, immagini che vestono i triangoli con i colori reali.
Ne escono due modelli distinti:
| Modello | Cartella | A cosa serve |
|---|---|---|
| Mesh 3D completa | odm_texturing/ |
La scena tridimensionale: facciate, alberi, volumi. È quella della vista 3D. |
| Mesh 2.5D | odm_texturing_25d/ |
Una superficie "a rilievo" senza sottosquadri, usata per generare l'ortofoto. |
Di norma ti interessa la prima. L'opzione --use-3dmesh indica al motore di usare la mesh 3D completa anche per l'ortofoto, invece di quella 2.5D: utile su scene con molte strutture verticali, a costo di tempi maggiori.
Se ti serve solo l'ortofoto, --skip-3dmodel salta la costruzione della mesh 3D e risparmia tempo (ottimizzare tempi e memoria).
2. I formati prodotti#
Il formato predefinito è OBJ, uno standard testuale aperto letto da qualunque software 3D. Nella cartella odm_texturing/ trovi:
odm_textured_model_geo.obj: la geometria (vertici, facce, coordinate UV);odm_textured_model_geo.mtl: il file dei materiali, che collega la mesh alle texture;- una serie di file immagine (le texture), tipicamente diversi PNG o JPG.
I tre elementi vanno sempre insieme. Se copi solo l'OBJ, il modello si apre grigio: è l'errore più comune.
Due formati aggiuntivi si attivano con un'opzione:
| Formato | Opzione | Quando serve |
|---|---|---|
| GLB (glTF binario) | --gltf |
Un solo file con mesh, materiali e texture. Ideale per Sketchfab, browser, Blender, visualizzatori web e realtà aumentata. |
| 3D Tiles | --3d-tiles |
Struttura a tasselli con livelli di dettaglio, pensata per lo streaming di modelli grandi in Cesium e visualizzatori compatibili. |
Il suffisso _geo indica che le coordinate sono georeferenziate: i vertici sono nel sistema del task (UTM), con valori nell'ordine delle centinaia di migliaia di metri. Alcuni programmi 3D soffrono con numeri così grandi; nel §5 vedi come gestirlo.

3. Dettaglio e peso: --mesh-size e --mesh-octree-depth#
Due opzioni governano la geometria della mesh.
--mesh-size (predefinito 200.000) è il numero massimo di vertici della mesh finale. È il limite superiore alla complessità: più vertici, più dettaglio geometrico e più peso. Per un edificio singolo rilevato con obliqui, valori di 500.000–1.000.000 restituiscono spigoli più netti; per un campo agricolo non cambia nulla.
--mesh-octree-depth (predefinito 11) controlla la profondità dell'albero con cui l'algoritmo di ricostruzione (Poisson) suddivide lo spazio. Ogni livello in più raddoppia la risoluzione spaziale della ricostruzione e moltiplica memoria e tempo. Valori 12–13 fanno emergere dettagli fini su modelli di dimensione contenuta; oltre, il rischio è un'elaborazione che non termina o una mesh "rugosa" che segue il rumore della nuvola.
Le due opzioni lavorano insieme: un octree profondo con --mesh-size basso viene poi decimato e perde il dettaglio; un --mesh-size enorme con octree basso produce triangoli tanti ma inutili. Aumenta entrambe in proporzione, di un passo alla volta, e giudica sul risultato. La qualità di partenza resta però la nuvola: --pc-quality conta più di qualsiasi parametro di mesh.
4. La texture: opzioni --texturing-*#
Le opzioni con prefisso --texturing- controllano come le foto vengono proiettate sulla mesh. Le più utili:
--texturing-single-material: produce un unico materiale e una texture unica invece di molti file. Semplifica l'importazione in motori di gioco e visualizzatori web, ma limita la risoluzione complessiva.--texturing-keep-unseen-faces: mantiene i triangoli che nessuna foto vede (per esempio sotto le gronde), che altrimenti vengono rimossi lasciando buchi. Il modello è più "chiuso", ma con zone senza colore reale.- Le opzioni che disattivano il livellamento delle cuciture (seam leveling) globale o locale: velocizzano la fase di texturing ma rendono visibili le differenze di esposizione tra foto adiacenti.
L'elenco completo con i nomi esatti e i valori predefiniti è nella guida alle opzioni e nella documentazione ufficiale linkata in fondo.
5. La vista 3D di WebODM#
Dal pannello del task, il pulsante della vista 3D apre il visualizzatore integrato (basato su Potree). Mostra la nuvola di punti e, con l'apposito interruttore, il modello texturizzato; puoi misurare distanze e aree, cambiare la modalità di colorazione, regolare la dimensione dei punti e attivare una vista "camere" con le posizioni degli scatti. La vista è condivisibile con un link pubblico, come la mappa 2D.
Il visualizzatore carica i dati in streaming: per modelli grandi il primo caricamento può richiedere qualche secondo, ma il browser non scarica l'intero file.

6. Portare il modello fuori da WebODM#
Blender#
Gratuito e completo. File → Import → Wavefront (.obj) per l'OBJ, o glTF 2.0 per il GLB. Il modello georeferenziato è lontanissimo dall'origine e Blender lavora meglio con coordinate piccole: dopo l'importazione seleziona il modello, azzera la posizione (Object → Set Origin → Origin to Geometry, poi sposta all'origine) oppure lavora su una copia traslata. Le texture si caricano da sole se l'MTL e i file immagine sono nella stessa cartella dell'OBJ.
MeshLab#
Gratuito, leggero, ottimo per pulire, decimare e misurare. File → Import Mesh apre l'OBJ con texture. Filtri utili: Remeshing → Simplification (Quadric Edge Collapse Decimation) per alleggerire mantenendo la texture; Cleaning and Repairing per rimuovere isole di triangoli sospese. MeshLab esporta in molti formati, incluso PLY, STL (per la stampa 3D, senza colore) e OBJ ridotto.
Sketchfab e il web#
Sketchfab accetta OBJ+MTL+texture (in un archivio ZIP) o GLB. Il GLB da --gltf è la via più comoda: un file solo, nessun collegamento da rompere. Controlla i limiti di dimensione del tuo piano Sketchfab e decima prima in MeshLab se necessario. Per pubblicare su un sito tuo, il GLB si mostra con visualizzatori web leggeri, e i 3D Tiles da --3d-tiles si servono da uno spazio statico verso Cesium.
QGIS e CAD#
QGIS non apre mesh OBJ texturizzate come layer nativo; per le analisi geografiche usa nuvola di punti, DEM e ortofoto (esportare in QGIS). I CAD leggono l'OBJ ma non conoscono il sistema di riferimento: annota l'EPSG del task (sistemi di riferimento italiani) e, se serve, riproietta prima la nuvola e ricostruisci la mesh nel software di destinazione.
Come verificare
Il modello è a posto se:
- si apre con i colori (non grigio) in Blender o MeshLab: OBJ, MTL e texture sono nella stessa cartella;
- le facciate degli edifici sono presenti e leggibili, non "stirate" verso il basso;
- non ci sono grandi triangoli piatti che coprono zone d'acqua o cielo ai bordi;
- il GLB, se richiesto, si carica su Sketchfab o in un visualizzatore web senza errori.
Problemi frequenti#
Facciate stirate o mancanti. Il volo era solo nadirale: la mesh non ha informazioni sui lati. Servono immagini oblique e il preset "Buildings" (casi particolari).
Modello "bolloso" o fuso. Nuvola troppo rada o rumorosa per la profondità dell'octree richiesta: alza --pc-quality o abbassa --mesh-octree-depth.
Veli e "tende" ai bordi del modello. La ricostruzione Poisson chiude le superfici anche dove non ci sono dati. Aumenta --crop oppure usa --auto-boundary per limitare l'area ricostruita a quella davvero fotografata.
Il file è troppo grande per Sketchfab o per il browser. Decima in MeshLab o riduci --mesh-size; attiva --texturing-single-material per un unico atlante di texture.
L'OBJ si apre grigio. Manca l'MTL o mancano le texture: copia l'intera cartella odm_texturing/.
Prossimi passi#
- Esportare in QGIS: quando serve la geografia, non la mesh.
- Sistemi di riferimento italiani: in che sistema sono le coordinate del modello.
- Casi particolari: edifici, obliqui e scene difficili.
Fonti
- Opzioni di elaborazione (mesh-size, mesh-octree-depth, gltf, 3d-tiles, texturing-*, use-3dmesh): https://docs.opendronemap.org/arguments/(link esterno)
- Output di ODM (cartelle odm_texturing, odm_texturing_25d): https://docs.opendronemap.org/outputs/(link esterno)
- Documentazione WebODM: https://docs.webodm.org/(link esterno)
Guide correlate
Esportare e aprire gli output di WebODM in QGIS
Output e utilizzo · Intermedio · Entrambe le linee
Sistemi di riferimento in Italia: EPSG per WebODM e QGIS
Output e utilizzo · Avanzato · Entrambe le linee
Nuvola di punti LAS/LAZ da WebODM: qualità, classi, uso
Output e utilizzo · Intermedio · Entrambe le linee
Casi particolari: vegetazione, acqua, edifici e rolling shutter
Parametri avanzati · Avanzato · Entrambe le linee
Ottimizzare tempi e memoria di WebODM: cosa incide davvero
Parametri avanzati · Intermedio · Entrambe le linee