GLB veelhoekreductie met gltfpack

Met de driehoekretentiecontrole wordt ingesteld hoeveel van het oorspronkelijke aantal driehoeken u wilt behouden. Het is een doel, geen belofte. Deze pagina behandelt de vereenvoudiging van de geometrie; het verandert de textuurgrootte of codering niet.

Begin met een gematigd doel

Upload het originele model, laat de texturen ongewijzigd en stel Doeldriehoekretentie in op 50%. Laat de vereenvoudigingsfout op de standaardwaarde 1% staan. Vergelijk gebogen contouren, dunne delen en gaten voordat u naar beneden gaat. Controleer bij modellen met meerdere meshes elk onderdeel in plaats van alleen het totaal aantal te beoordelen.

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

Waarom het doel mogelijk niet wordt bereikt

De foutlimiet beperkt aanvaardbare vereenvoudigingsfouten. Een strengere limiet kan de reductie vroegtijdig stoppen. Open grenzen, attribuutnaden en de structuur van kleine maasdelen kunnen ook minder veilige vereenvoudigingskeuzes achterlaten. De website rapporteert het gemeten resultaat en mogelijke oorzaken; de motor identificeert niet één exacte stopreden.

Vergrendel grenshoekpunten wanneer afzonderlijke stukken bij de open randen moeten blijven passen. Dit kan helpen gaten te voorkomen, maar kan meer driehoeken achterlaten. Test de geassembleerde stukken na export; het vergrendelen van randen is geen garantie dat elke visuele naad ongewijzigd blijft.

Meetresultaten op het rimpelmonster

VereenvoudigingsinstellingenUitvoerdriehoeken
Origineel gaas8,192
50% doel, standaardfoutlimiet4,095
10% doel, nul fouten, vergrendelde grenzen8,192
10% doel, agressieve vereenvoudiging812

De runs gebruiken hetzelfde originele CC0-voorbeeld en native gltfpack 1.3. Driehoekstotalen tellen elke mesh-primitief één keer. De resultaten zijn afhankelijk van het model, en een telling die bijna het beoogde doel bereikt, zegt niets over de vraag of de resterende vorm acceptabel is.

Vergelijk het silhouet onder dezelfde hoek

Deze afbeeldingen geven de bestanden in de tabel weer met dezelfde camera, belichting en materialen in Three.js 0.180.0. Open een afbeelding om deze op volledige grootte te bekijken. Begin met de buitenste lobben en de binnenste opening; beoordeel het resultaat niet alleen op basis van driehoekentellingen.

Origineel rimpelmodel gezien vanuit de vaste vergelijkingscamera
Origineel: 8.192 driehoeken
Rimpelmodel na 50 procent driehoeksretentie
50% van de driehoeken behouden: 4.095 driehoeken
Rimpelmodel na agressieve retentie van 10 procent
Agressieve vereenvoudiging tot 10%: 812 driehoeken

In het agressieve 10%-resultaat heeft de binnenopening zichtbaar rechtere segmenten en scherpere hoeken. De buitenste lobben verliezen ook wat rondheid. Deze veranderingen zijn gemakkelijk over het hoofd te zien in een kleine thumbnail, ook al is het driehoeksdoel bereikt.

Dit voorbeeld bevat geen skinning of animatie. Eén enkele weergave kan geen bewegingsproblemen, verborgen oppervlakken of elke kleurverandering onthullen. Roteer uw eigen resultaat en controleer het op de beoogde weergavegrootte voordat u een lagere driehoektelling accepteert.

Gebruik agressieve vereenvoudiging alleen na vergelijking

Agressieve vereenvoudiging geeft prioriteit aan de gevraagde telling en negeert de foutlimiet. De interface schakelt het foutveld uit terwijl deze modus actief is. Gebruik het op een kopie en inspecteer het silhouet en de oppervlakteschaduw. Het is geen kwaliteitsbehoudende kortere weg voor een moeilijk model.

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

Als er minder driehoeken zijn, wordt de bestandsgrootte nauwelijks kleiner →

Motorreferentie: gltfpack

Open de optimalisatie ↗