Redukcja wielokątów GLB za pomocą gltfpack

Udział zachowanych trójkątów określa, jaką część oryginalnej liczby chcesz zachować. Wynik może przekroczyć ten cel z powodu limitu błędu lub ograniczeń siatki. To ustawienie wpływa na geometrię; wymiary i kodowanie tekstur reguluje się osobno.

Zacznij od umiarkowanego celu

Prześlij oryginał, zachowaj tekstury i ustaw Docelowy udział zachowanych trójkątów na 50%. Pozostaw domyślny limit błędu 1%. Przed dalszą redukcją porównaj zakrzywione obrysy, cienkie części i otwory. W modelach z wieloma siatkami sprawdź każdą część, zamiast oceniać tylko sumę.

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

Dlaczego cel może nie zostać osiągnięty

Limit błędu ogranicza dopuszczalny błąd uproszczenia. Surowszy limit może wcześniej zatrzymać redukcję. Otwarte brzegi, szwy atrybutów i budowa małych części siatki również mogą ograniczać bezpieczne możliwości uproszczenia. Strona podaje zmierzony wynik i możliwe przyczyny; silnik nie wskazuje jednej dokładnej przyczyny zatrzymania.

Zablokuj wierzchołki brzegowe, gdy oddzielne części muszą zachować pasujące otwarte krawędzie. Może to zapobiec szczelinom, ale pozostawić więcej trójkątów. Sprawdź złożone części po eksporcie; blokada brzegów nie gwarantuje niezmienionego wyglądu każdego łączenia.

Wyniki pomiarów falistego modelu

Ustawienia uproszczeniaTrójkąty wyjściowe
Siatka oryginalna8 192
Cel 50%, domyślny limit błędu4 095
Cel 10%, zerowy błąd, zablokowane brzegi8 192
Cel 10%, agresywne uproszczenie812

Próby używają tej samej oryginalnej próbki CC0 i natywnego gltfpack 1.3. Każdy prymityw siatki jest liczony tylko raz. Wynik zależy od modelu, a liczba bliska celowi nic nie mówi o tym, czy uzyskany kształt jest akceptowalny.

Porównaj obrys pod tym samym kątem

Obrazy przedstawiają pliki z tabeli z tą samą kamerą, oświetleniem i materiałami w Three.js 0.180.0. Otwórz obraz w pełnym rozmiarze. Zacznij od zewnętrznych wypukłości i otworu w środku; nie oceniaj wyniku tylko po liczbie trójkątów.

Oryginalny falisty model z ustalonej kamery porównawczej
Oryginał: 8192 trójkąty
Falisty model po zachowaniu 50 procent trójkątów
Zachowano 50%: 4095 trójkątów
Falisty model po agresywnym zachowaniu 10 procent trójkątów
Agresywne 10%: 812 trójkątów

W agresywnym wyniku 10% otwór wewnętrzny ma wyraźnie prostsze odcinki i ostrzejsze narożniki. Zewnętrzne wypukłości też tracą część zaokrąglenia. Na małej miniaturze łatwo to przeoczyć, mimo że cel liczby trójkątów został osiągnięty.

Próbka nie zawiera skinningu ani animacji. Jeden widok nie ujawni problemów ruchu, ukrytych powierzchni ani wszystkich zmian cieniowania. Obróć własny wynik i obejrzyj go w docelowym rozmiarze, zanim zaakceptujesz mniejszą liczbę trójkątów.

Używaj agresywnego uproszczenia dopiero po porównaniu

Agresywne uproszczenie priorytetowo traktuje żądaną liczbę i ignoruje limit błędu. Interfejs wyłącza pole błędu w tym trybie. Używaj go na kopii i sprawdzaj obrys oraz cieniowanie powierzchni. Nie jest to skrót gwarantujący jakość trudnego modelu.

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

Gdy mniej trójkątów prawie nie zmniejsza pliku →

Dokumentacja silnika: gltfpack

Otwórz optymalizator ↗