Jak zmniejszyć rozmiar pliku GLB
Porównaj kilka eksportów, zmieniając jedno ustawienie naraz. Sama liczba trójkątów nie wyjaśnia rozmiaru pliku: ta sama siatka może mieć małą teksturę lub kilka dużych obrazów. Zacznij od kompresji geometrii, a jeśli plik nadal jest za duży, sprawdź ustawienia tekstur.
1. Zapisz punkt odniesienia
Zachowaj oryginalny GLB. Uruchom profil Zachowawczy bez redukcji trójkątów i konwersji tekstur, a potem zapisz wynik i polecenie. Zanotuj bajty oraz trójkąty obu plików. Następne próby zawsze zaczynaj od oryginału, aby przypisać każdą różnicę zmienionemu ustawieniu.
2. Porównaj kompresję geometrii przed usuwaniem detali
Wypróbuj profil Mniejszy plik z oryginalnymi teksturami. Włącza Meshopt bez żądania redukcji trójkątów. Jeśli oszczędność wystarczy, a przeglądarka modeli obsługuje rozszerzenia wyniku, redukcja trójkątów może wcale nie być potrzebna.
| Falisty model przykładowy | Rozmiar pliku (bajty) | Trójkąty |
|---|---|---|
| Oryginał | 186 756 | 8 192 |
| Profil Zachowawczy | 119 120 | 8 192 |
| Profil Mniejszy plik | 39 248 | 8 192 |
Pomiary używają naszej oryginalnej falistej próbki CC0 i natywnego gltfpack 1.3. Tekstura ma tylko 16 × 16 pikseli, więc przykład pokazuje głównie kompresję geometrii. Liczba trójkątów nie zmieniła się w obu eksportach; nie oznacza to zachowania wszystkich innych właściwości.
3. Sprawdź, czy dominują tekstury
Druga próbka ma tę samą geometrię i jeden wygenerowany PNG 1024 × 1024. Początkowo zajmuje 3 061 644 bajty. Meshopt z niezmienionym PNG daje 2 914 152 bajty; zmiana tylko tekstury na WebP z jakością 8 daje 445 632 bajty. Wszystkie trzy pliki mają 8192 trójkąty.
W tym przykładzie zmiana tekstury dała znacznie więcej niż kompresja siatki. To przykład diagnostyczny, nie oczekiwana oszczędność dla każdego modelu. Zdjęcie, mapa normalnych i płaskie logo kodują się inaczej.
Wybierz ustawienia kompresji tekstur →
4. Zatrzymaj się na wyniku użytecznym w aplikacji
Porównaj model z docelowej odległości, a potem przetestuj ładowanie na reprezentatywnym urządzeniu. Mniejszy transfer nie oznacza automatycznie mniejszego użycia pamięci GPU ani szybszego renderowania. Zachowaj najmniejszą wersję spełniającą wymagania wyglądu i zgodności.
Redukuj trójkąty, gdy geometria nadal jest zbyt gęsta →
Znajdź przyczynę większego wyniku →
Dokumentacja silnika: gltfpack
Otwórz optymalizator ↗