Redukcja wielokątów GLB za pomocą gltfpack

Kontrola zachowania trójkątów określa, jaką część oryginalnej liczby trójkątów chcesz zachować. To cel, a nie obietnica. Na tej stronie omówiono uproszczenie geometrii; nie zmienia rozmiaru tekstury ani kodowania.

Zacznij od umiarkowanego celu

Prześlij oryginalny model, zachowaj tekstury bez zmian i ustaw Zachowanie trójkąta docelowego na 50%. Pozostaw błąd uproszczenia na domyślnym poziomie 1%. Porównaj zakrzywione kontury, cienkie części i otwory, zanim zejdziesz niżej. W przypadku modeli z kilkoma siatkami sprawdź każdą część, zamiast oceniać tylko całkowitą liczbę.

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

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

Granica błędu ogranicza dopuszczalny błąd uproszczenia. Bardziej rygorystyczny limit może wcześniej zatrzymać redukcję. Otwarte granice, szwy atrybutów i struktura małych części siatkowych mogą również pozostawiać mniej możliwości bezpiecznego uproszczenia. Strona internetowa podaje zmierzony wynik i możliwe przyczyny; silnik nie identyfikuje jednego dokładnego powodu zatrzymania.

Zablokuj wierzchołki obramowania, gdy oddzielne elementy muszą pasować do otwartych krawędzi. Pomoże to uniknąć przerw, ale może pozostawić więcej trójkątów. Przetestuj zmontowane elementy po eksporcie; zamknięcie granic nie gwarantuje, że każda wizualna spoina pozostanie niezmieniona.

Wyniki pomiarów na próbce tętnienia

Ustawienia uproszczeniaTrójkąty wyjściowe
Oryginalna siatka8,192
Cel 50%, domyślny limit błędu4,095
Cel 10%, błąd zerowy, zamknięte granice8,192
Cel 10%, agresywne uproszczenie812

W seriach używana jest ta sama oryginalna próbka CC0 i natywna wersja gltfpack 1.3. Sumy trójkątów zliczają każdy prymityw siatki raz. Wyniki zależą od modelu, a liczba obiektów bliskich wartości docelowych nie mówi nic o tym, czy pozostały kształt jest akceptowalny.

Porównaj sylwetkę pod tym samym kątem

Te obrazy renderują pliki w tabeli przy użyciu tej samej kamery, oświetlenia i materiałów w Three.js 0.180.0. Otwórz obraz, aby sprawdzić go w pełnym rozmiarze. Zacznij od płatków zewnętrznych i otworu wewnętrznego; nie oceniaj wyniku wyłącznie na podstawie liczby trójkątów.

Oryginalny model tętnienia oglądany ze stałej kamery porównawczej
Oryginał: 8192 trójkątów
Model tętnienia po zachowaniu 50 procent trójkąta
Zachowano 50%: 4095 trójkątów
Model Ripple po agresywnej retencji 10%.
Agresywne uproszczenie do 10%: 812 trójkątów

W agresywnym wyniku 10% otwór wewnętrzny ma wyraźnie prostsze segmenty i ostrzejsze rogi. Płatki zewnętrzne również tracą pewną okrągłość. Zmiany te łatwo przeoczyć na małej miniaturze, nawet jeśli cel trójkąta został osiągnięty.

Ta próbka nie zawiera skórek ani animacji. Pojedynczy widok nie może ujawnić problemów z ruchem, ukrytych powierzchni ani każdej zmiany cieniowania. Obróć swój wynik i sprawdź go w zamierzonym rozmiarze, zanim zaakceptujesz mniejszą liczbę trójkątów.

Stosuj agresywne uproszczenie dopiero po porównaniu

Agresywne uproszczenie nadaje priorytet żądanej liczbie i ignoruje limit błędu. Interfejs wyłącza pole błędu, gdy ten tryb jest aktywny. Użyj go na kopii i sprawdź sylwetkę i cieniowanie powierzchni. Nie jest to skrót zapewniający jakość dla trudnego modelu.

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

Jeśli mniej trójkątów ledwo zmniejsza rozmiar pliku →

Odniesienie do silnika: gltfpack

Otwórz optymalizator ↗