Riduzione del poligono GLB con gltfpack

Il controllo di conservazione del triangolo imposta la quantità di conteggio del triangolo originale che desideri conservare. È un obiettivo, non una promessa. Questa pagina riguarda la semplificazione della geometria; non cambia la dimensione o la codifica della trama.

Inizia con un obiettivo moderato

Carica il modello originale, mantieni le texture invariate e imposta la conservazione del triangolo target su 50%. Lasciare l'errore di semplificazione al valore predefinito 1%. Confronta contorni curvi, parti sottili e fori prima di scendere. Per i modelli con più mesh, controlla ogni parte invece di giudicare solo il conteggio totale.

gltfpack -i input.glb -o output.glb -si 0.5 -kn -km -ke

Perché l'obiettivo potrebbe non essere raggiunto

Il limite di errore limita l'errore di semplificazione accettabile. Un limite più severo può interrompere anticipatamente la riduzione. Anche i confini aperti, le cuciture degli attributi e la struttura di piccole parti in rete possono lasciare poche scelte di semplificazione sicure. Il sito web riporta il risultato misurato e le possibili cause; il motore non identifica un motivo esatto di arresto.

Blocca i vertici del bordo quando i pezzi separati devono continuare a corrispondere ai bordi aperti. Questo può aiutare a evitare spazi vuoti, ma può lasciare più triangoli. Testare i pezzi assemblati dopo l'esportazione; il bloccaggio dei bordi non garantisce che ogni cucitura visiva rimanga invariata.

Risultati misurati sul campione di ondulazione

Impostazioni di semplificazioneTriangoli di uscita
Maglia originale8,192
Destinazione 50%, limite di errore predefinito4,095
Bersaglio 10%, errore zero, bordi bloccati8,192
Obiettivo 10%, semplificazione aggressiva812

Le esecuzioni utilizzano lo stesso campione CC0 originale e gltfpack nativo 1.3. I totali del triangolo contano ciascuna primitiva mesh una volta. I risultati dipendono dal modello e un conteggio vicino al target non dice nulla sul fatto che la forma rimanente sia accettabile.

Confronta la silhouette dalla stessa angolazione

Queste immagini rendono i file nella tabella con la stessa fotocamera, illuminazione e materiali in Three.js 0.180.0. Apri un'immagine per visualizzarla a grandezza naturale. Inizia con i lobi esterni e l'apertura interna; non giudicare il risultato solo dal conteggio dei triangoli.

Modello di ondulazione originale visualizzato dalla telecamera di confronto fissa
Originale: 8.192 triangoli
Modello ondulato dopo una ritenzione del triangolo del 50%.
50% dei triangoli mantenuti: 4.095 triangoli
Modello ondulato dopo una ritenzione aggressiva del 10%.
Semplificazione aggressiva al 10%: 812 triangoli

Nel risultato aggressivo 10%, l'apertura interna presenta segmenti visibilmente più dritti e angoli più acuti. Anche i lobi esterni perdono un po’ di rotondità. È facile che tali modifiche non vengano notate in una piccola miniatura, anche se l'obiettivo del triangolo è stato raggiunto.

Questo esempio non presenta skin o animazioni. Una singola vista non può rivelare problemi di movimento, superfici nascoste o ogni cambiamento di ombreggiatura. Ruota il tuo risultato e controllalo nella dimensione di visualizzazione prevista prima di accettare un conteggio di triangoli inferiore.

Utilizzare una semplificazione aggressiva solo dopo il confronto

La semplificazione aggressiva dà priorità al conteggio richiesto e ignora il limite di errore. L'interfaccia disabilita il campo di errore mentre questa modalità è attiva. Usalo su una copia e controlla la silhouette e l'ombreggiatura della superficie. Non è una scorciatoia che preserva la qualità di un modello difficile.

gltfpack -i input.glb -o output.glb -si 0.1 -sa -kn -km -ke

Se meno triangoli riducono a malapena la dimensione del file →

Riferimento motore: gltfpack

Apri l'ottimizzatore ↗