Rozważania dotyczące wydajności

Aby tworzyć atrakcyjne wrażenia użytkowników AR, ważne jest, aby Twoja aplikacja obsługująca AR działała dobrze.

Upewnij się, że Twoja aplikacja:

  • Czuje, że reaguje na dane wejściowe użytkownika, które obejmują gesty dotykowe i ruch urządzenia.
  • Renderuje z rozsądną i stałą liczbą klatek na sekundę. Użytkownicy na ogół preferują stałą i niższą liczbę klatek na sekundę od liczby klatek, które są zmienne i wyższe.
  • Minimalizuje zużycie baterii, umożliwiając użytkownikowi używanie urządzenia do innych zadań w ciągu dnia lub dłuższe korzystanie z AR.
  • Tworzy przekonujące doświadczenie AR, w którym treści generowane przez AR wydają się stabilne w stosunku do otoczenia i realistycznie wtapiają się w otoczenie.

Najlepsze praktyki dotyczące wydajności

Aby stworzyć bardziej atrakcyjne środowisko AR, projektuj, pamiętając o poniższych sprawdzonych metodach.

Użyj kotwic, aby poprawić wydajność śledzenia

Mimo że jest to możliwe, aby umieścić swoją zawartość 3D przy użyciu współrzędnych światowej przestrzeni, zawsze używać kotwicy w miarę możliwości . ARCore zapewnia, że ​​kotwice wydają się stabilne względem świata, nawet jeśli leżące u ich podstaw współrzędne przestrzeni świata zmieniają się i mogą zmieniać się w czasie, gdy ARCore aktualizuje swoje rozumienie świata.

Wirtualne obiekty, które nie są przymocowane do kotwicy, od czasu do czasu wydają się skakać i nie będą wyglądać stabilnie w stosunku do otoczenia. Może to sprawić, że doświadczenie AR będzie mniej atrakcyjne dla użytkowników.

Rozważ charakterystykę wydajności charakterystyczną dla urządzenia

ARCORE obsługiwane urządzenia obejmują szeroki zakres cech sprzętowych i wydajności. Wydajność urządzenia może się różnić ze względu na:

  • Procesor/GPU urządzenia, szybkość zegara
  • Dostępna pamięć i przepustowość
  • Jakość aparatu/czujnika IMU
  • Inne różnice sprzętowe
  • Sterowniki systemu operacyjnego i urządzeń

Zalecamy przetestowanie Twojej aplikacji na różnych klasach urządzeń, które są reprezentatywne dla urządzeń, z których będą korzystać Twoi użytkownicy.

Wyłącz funkcje obciążające procesor, gdy nie są używane

Niektóre funkcje ARCore zwiększają wykorzystanie procesora, gdy są włączone. Zastanów się nad wyłączeniem tych funkcji w sytuacjach, gdy korzystanie z AR ich nie wymaga. Spowoduje to udostępnienie aplikacji dodatkowych cykli procesora oraz poprawi wydajność cieplną i żywotność baterii.

Obecnie ARCORE wykorzystanie procesora wzrasta gdy Instant Placement i / lub Augmented Images jest włączona dla bieżącej sesji. Postępuj zgodnie z tymi wytycznymi, aby zwiększyć wydajność wykorzystania procesora:

  • Instant Placement powinny być wyłączone raz pełne śledzenie zostało ustalone. Funkcję można wyłączyć w konfiguracji sesji.

  • Augmented Images powinny być wyłączone, gdy funkcja nie jest wymagane do doświadczeń AR. Aby wyłączyć Augmented obrazy, należy skonfigurować null lub pusty Augmented obrazów bazy danych w konfiguracji sesji.

Monitorowanie termiki urządzenia

Podczas opracowywania i testowania kontroli jakości możesz używać termicznych interfejsów API systemu Android do monitorowania i śledzenia wydajności aplikacji na urządzeniu.

Należy używać kompilacji produkcji aplikacji (a nie rozwój lub QA kompilacji aplikacji, które mogą mieć różne charakterystyki działania wykonawcze.

Unikaj głodu procesora ARCore

Gdy sesja ARCore jest aktywna, Twoja aplikacja musi współdzielić ograniczone mobilne urządzenie CPU i GPU z ARCore. CPU związany aplikacje mogą konkurować z zasobów procesora wymaganych do śledzenia ruchu .

Wstępnie utwórz bazy danych Augmented Images

Jeśli to możliwe, utwórz bazy danych Augmented Image w czasie opracowywania. Jeśli konieczne jest utworzenie baz danych Augmented Image w czasie wykonywania lub dynamiczne dodawanie obrazów do istniejącej bazy danych, należy dodać obrazy w wątku tła, aby uniknąć blokowania głównego wątku interfejsu użytkownika.

Ogranicz liczbę żądanych strumieni kamer

Podczas korzystania Java Shared Camera , aplikacje mogą żądać dodatkowych procesorów graficznych GPU lub strumieni.