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 uproszczenia | Trójkąty wyjściowe |
|---|---|
| Siatka oryginalna | 8 192 |
| Cel 50%, domyślny limit błędu | 4 095 |
| Cel 10%, zerowy błąd, zablokowane brzegi | 8 192 |
| Cel 10%, agresywne uproszczenie | 812 |
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.
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 ↗

