Jak zmniejszyć rozmiar pliku GLB

Zacznij od porównania kilku kontrolowanych eksportów. Rozmiar pliku i liczba trójkątów opisują różne rzeczy: ta sama siatka może mieć małą teksturę lub kilka dużych obrazów. Ten przewodnik pomoże Ci zdecydować, co zmienić w pierwszej kolejności; połączone przewodniki dotyczą poszczególnych ustawień.

1. Zapisz linię bazową

Zachowaj oryginał GLB. Uruchom ustawienie wstępne Konserwatywne bez zmniejszania trójkątów i konwertowania tekstur, a następnie zapisz wynik i polecenie. Zapisz liczbę bajtów i trójkątów w obu plikach. Zawsze rozpoczynaj późniejsze próby od oryginału, aby móc przypisać każdą różnicę zmienionemu ustawieniu.

2. Porównaj kompresję geometrii przed usunięciem szczegółów

Wypróbuj ustawienie wstępne Mniejszy plik z oryginalnymi teksturami. Umożliwia kompresję Meshopt bez żądania redukcji trójkątów. Jeśli daje to wystarczające oszczędności, a Twoja przeglądarka obsługuje rozszerzenia wyjściowe, być może nie będziesz musiał w ogóle zmniejszać trójkątów.

Próbka tętnieniaRozmiar pliku (w bajtach)Trójkąty
Oryginalny186,7568,192
Konserwatywne ustawienie119,1208,192
Mniejsze ustawienie wstępne pliku39,2488,192

W pomiarach tych wykorzystano naszą oryginalną próbkę tętnienia CC0 i natywną próbkę gltfpack 1.3. Jego tekstura ma wymiary zaledwie 16×16 pikseli, więc ilustruje głównie kompresję geometrii. Liczba trójkątów w obu eksporcie pozostała niezmieniona; nie oznacza to, że optymalizator zachował wszystkie inne właściwości.

3. Sprawdź, czy dominują tekstury

Drugie urządzenie wykorzystuje tę samą geometrię z wygenerowanym 1024 × 1024 PNG. Zaczyna się od 3 061 644 bajtów. Meshopt z niezmienionym PNG daje 2 914 152 bajtów; zmiana tylko wyjściowej tekstury na WebP przy jakości 8 daje 445 632 bajtów. Wszystkie trzy pliki zawierają 8192 trójkątów.

W przypadku tego urządzenia zmiana tekstury miała znacznie większe znaczenie niż kompresja siatki. To przykład diagnostyczny, a nie oczekiwana oszczędność dla każdego modelu. Zdjęcie, zwykła mapa i płaskie logo będą kodowane inaczej.

Wybierz ustawienia kompresji tekstur →

4. Zatrzymaj się na wyniku, z którego może skorzystać Twoja aplikacja

Porównaj model w zamierzonej odległości oglądania, a następnie przetestuj ładowanie na reprezentatywnym urządzeniu. Mniejsze pobieranie nie oznacza automatycznie mniejszego zużycia pamięci GPU lub szybszego renderowania. Zachowaj najmniejszą wersję, która spełnia Twoje wymagania dotyczące wyglądu i zgodności.

Zmniejsz trójkąty, gdy geometria jest nadal zbyt gęsta →

Zdiagnozuj wynik, który stał się większy →

Odniesienie do silnika: gltfpack

Otwórz optymalizator ↗