s. minto, pointcloud2publish – visualizzazione e condivisione di modelli 3d
DESCRIPTION
Salone del Restauro di Ferrara, 26 marzo 2014 “Tecnologie Open Source per i Beni Culturali: rilievo e modellazione 3D, restauro virtuale, stampa 3D"TRANSCRIPT
3DOM – Fondazione Bruno Kessler, Trento
PointCloud2PublishVisualizzazione e condivisione online
di modelli 3D
Simone [email protected]
Open Téchne – Master UNESCO in Tecnologie Open Source per i Beni Culturali
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Modelli 3D generati da PointCloud
IMAGE-BASED (Sensori passivi)● Fotogrammetria ● Computer-Vision➔ Dense or sparse 3D point (point cloud)
RANGE-BASED (Sensori attivi)● Laser Scanner (Tempo di volo o diferenza di fase)● Kinect (a triangolazione)➔ Dense point cloud
Real
ity-
base
d M
odel
ing
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
PointCloud da Image-based Modeling
AUTOMATED IMAGE-BASED 3D RECONSTRUCTION
● Acquisizione
MicMac● Ricostruzione
Apero
● Calibrazione (Orientamento interno)
● Orientamento (Esterno)
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Casi Studio - Progetto TAPEnADE
➔ Colonna del Chiostro di St Michel de Cuxa ➔ Fontana di Saint-Jean a Villeneuve les Avignon
● Cappella Imperiale di Ajaccio ● Vieille Charité a Marsiglia
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
WORKFLOW
Poisson Surface Reconstruction
Vertex Color to Mesh
Texture
Publish
Calcolo Normali
PointCloud
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Normals – Surface Reconstruction
● Poisson Surface Reconstruction
Livelli di Octree sperimentati
8 – 9 – 10 – 12 - 14
✗ Si devono calcolare le normali✗ Genera una mesh chiusa anche se la
nuvola presenta dei vuoti.✗ Pulire la mesh eccedente✗ Non eredita Vertex Color
● Calcolo delle Normali
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Confronto Mesh
Octree 8
Tempo: 6s
Vertex:47189
Faces:94376
Kb(*ply):2305
Octree 9
Tempo: 15s
Vertex:186185
Faces:372366
Kb(*ply):9092
Octree 10
Tempo: 115s
Vertex:742748
Faces:1485492
Kb(*ply):36268
Octree 12
Tempo: 240s
Vertex:837211
Faces:1674414
Kb(*ply):40880
Octree 14
Tempo: 1470s
Vertex:842425
Faces:1692842
Kb(*ply):41330
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Color Vertex – Pulizia – Fill Hole
● Vertex Color Transfer ● Pulizia
● Fill Hole
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Segmentazione
Perché segmentare il modello?● Abaco
● Echino
● Collarino
● Fusto
● Base
COLONNA
● Segmentazione “SEMANTICA”➔ Segmentare seguendo ad esempio il “lessico”
architettonico ci pone già in un approccio di studio del modello (bene culturale)
● Gestione ➔ Suddividere il modello in più parti, gestibili
individualmente facilita la gestione delle risorse hardware
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Segmentazione● Automatica● PLUGIN RANSAC
(RANdom SAmple Consensus)
✗ Solo per Point Cloud✗ Troppa frammentazione✗ Difcilmente settabile
● Manuale● Segment
✔ Point Cloud e Mesh✗ Soggetività dell'operatore✗ Tempi uomo lunghi
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Semplifcazione
● Gestione ➔ Come visto per la segmentazione, ridurre la
grande mole di poligoni facilita la gestione delle risorse hardware
➔ Remesh
Modifcatore di Blender
Basato sull'algoritmo Marching Cubes.
Ha come obiettivo l'uniformazione della lunghezza degli edge.
Perché semplifcare?
● Modelli leggeri per il WEB➔ Visualizzare modelli 3D in remoto in modo
fuido impone di utilizzare soluzioni che si adattino alle capacità delle odierne reti internet
Come semplifcare?
➔ Due soluzioni utilizzate
➔ Decimazione
Quadric Edge Collapse Decimation
l'edge scelto viene collassato in un unico vertice, le due facce tra le quali si trovava vengono eliminate anch'esse.
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Quadric Edge Collapse Decimation
● Struttura di una mesh, in rosso i vertici e gli edge interni, in blu le zone di boundary
● Una mesh poligonale é essenzialmente una collezione di vertici, spigoli (edge) e facce
Edge-collapse
L'edge diventa un vertice
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Remesh - Marching Cubes
✔ Crea una mesh con la lunghezza degli edge uniformata.✗ Le zone di boundary non si riescono a preservare.✗ La mesh ottenuta non eredita le informazioni colore
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Semplifcazioni a confronto
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Semplifcazioni a confronto
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Semplifcazioni a confronto● Distance Computation
Decimate 75% Decimate 50% Decimate 25%
Decimate 10% Decimate 1%
Octree 9 Octree 8 Octree 7
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Texture
● Dei nostri modelli abbiamo solo informazioni colore legate ai vertici della Point Cloud, trasferiti alla mesh.
➔ Bake dei Vertex Colour su una Texture Map
I l Render Baking crea un'immagine bitmap 2D della superfcie di un oggetto mesh renderizzato. L'immagine viene rimappata sull'oggetto (Il modello decimato nel nostro caso) usando le sue coordinate UV, il cui calcolo per modelli complessi richiede tempi lunghi.
Perché associare Texture al modello?
● Se abbiamo le informazioni colore associate alla nuvola di punti, più semplifchiamo il modello più perderemo le informazioni colore.
● Le informazioni cromatiche sono fondamentali nello studio dei beni culturali
➔ Generare una texture ci consente di semplifcare il modello geometrico mantenendo apprezzabile la risoluzione cromatica.
Come creare la Texture?
➔ Trasferire le informazioni colore dal modello originale a quello decimato.
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Texture
Unwrap Echino1%
● Unwrap
Mesh Echino 1%
➔ Scuce la mesh 3D su di un piano, associando la coordinata spaziale XYZ a quella del piano UV
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Texture
Texture Echino1%
● Bake Vertex Color to Texture map
Echino 100% selected
Echino 1% active
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
Visualizzazione di Modelli 3D su piattaforme WEB
● PDF3D
● WEBGL/HTML5
● REMOTE RENDERING SERIUS GAMES
● PSEUDO 3D
Linguaggi, librerie, API Soluzioni, Piattaforme
● SOLUZIONI ALL IN ONE
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
PDF3D● OPEN SOURCE
✔ Ottima compressione✔ Mantiene un buon dettaglio
✗ Perde informazioni colore✗ Perde la segmentazione
● SIMLAB COMPOSER
✔ Importa il modello Collada con le texture✔ Si possono colegare azioni alle segmentazioni✔ Si può personalizzare un template di sfondo✗ Dimensioni elevate per il WEB
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
WEBGL
✗ Non mantiene la segmentazione✗ Si può inserire un solo link
● SKETCHCFAB
✔ Ottima navigabilità✔ Mantiene vertex color✔ Mantiene texture✔ Upload direttamente dai vari software
di modellazione
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
ALTRE SOLUZIONI● SMITHSONIAN X 3D - AutoDESK
● NUBES
PointCloud2PublishPointCloud2PublishVisualizzazione e condivisione online di modelli 3DVisualizzazione e condivisione online di modelli 3D
CONCLUSIONI
HIGH RESOLUTION
VS
WEB
E' più importante l'oggetto rappresentato
o la rappresentazione dell'oggetto?
✗ La modellazione non deve fermarsi all'apparenza
● Approccio multidisciplinare.● Utilizzare il modello come contenitore di
tutte le informazioni che riguardano il bene in oggetto -database, metadata,
ecc..
● Semplifcazione e Segmentazione hanno ruoli importanti nel processo
● Unifcare questi processi con:✔ tecniche di re-topology
✔ Scomporre il modello in geometrie elementari
✗ Coerenza metrica
Fine