Google jest zaangażowany w promowanie równości rasowej dla społeczności czarnych. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Konfiguracja aparatu

CameraConfig zawiera szczegółowe informacje o konfiguracji kamery, której ARCore używa do uzyskania dostępu do czujnika kamery w danej sesji. Te szczegóły obejmują na przykład docelową liczbę klatek na sekundę oraz informację, czy czujnik głębokości jest obecny i używany.

Podczas tworzenia nowej sesji ARCore, ARCore używa ARCoreCameraConfigFilter do filtrowania konfiguracji kamery, która najlepiej pasuje do listy dostępnych konfiguracji. Możesz użyć zasobu CameraConfigFilter, aby zawęzić dostępne konfiguracje kamery dla danego urządzenia w czasie wykonywania, filtrując je na podstawie potrzeb aplikacji.

Typowe przypadki użycia filtrowania to:

  • Ograniczenie liczby klatek na sekundę przechwytywania z aparatu do 30 fps Gwarantujemy, że ten przypadek użycia będzie obsługiwany na wszystkich urządzeniach. Na urządzeniach obsługujących 60 klatek na sekundę ARCore nada priorytet konfiguracjom kamer, które domyślnie obsługują tę liczbę klatek na sekundę. Odfiltrować wszystkie pliki konfiguracyjne kamer, które obsługują 60 fps, upewnij się, że docelowa 60fps jest zaznaczona, a opcja docelowa 30FPS jest sprawdzana w aktywa ARCoreCameraConfigFilter .

  • Zapobiegaj używaniu przez ARCore czujnika głębokości . Gwarantujemy, że ten przypadek użycia będzie obsługiwany na wszystkich urządzeniach. Na urządzeniach, które mają obsługiwany czujnik głębokości, ARCore nadaje priorytet konfiguracjom kamer, które używają czujnika głębokości. Aby odfiltrować wszystkie konfiguracje kamer, które używają czujnika głębokości, zaznacz opcję Nie używaj w zasobie ARCoreCameraConfigFilter .

  • Wybór innej rozdzielczości tekstury GPU . Na obsługiwanych urządzeniach ARCore może zapewniać dodatkowe rozdzielczości tekstur GPU. Wybranie tekstury GPU o niższej rozdzielczości może pomóc poprawić wydajność aplikacji, zmniejszając obciążenie procesora graficznego i zmniejszając wymagania dotyczące przepustowości pamięci. Jednak wybranie niższej rozdzielczości tekstur GPU nie gwarantuje poprawy wydajności we wszystkich przypadkach lub na wszystkich urządzeniach.

Korzystanie z filtrów konfiguracji kamery w Unity

Wymagania wstępne

Ten przewodnik został napisany przy założeniu, że masz już zainstalowany i skonfigurowany Unity z zestawem SDK ARCore dla Unity 1.11.0 lub nowszym. Jeśli nie, zobacz przewodnik Szybki start dotyczący aparatu Unity dla systemu Android .

Konfiguracja kamery i filtrów kamery w Twojej scenie

Aby skonfigurować konfigurację kamery w projekcie ARCore Unity:

  1. Otwórz przykład HelloAR lub otwórz istniejący projekt, aby śledzić istniejący projekt Unity ARCore.

  2. Wybierz obiekt GameObject urządzenia ARCore w swojej hierarchii scen.

  3. W Inspektorze kliknij dwukrotnie wystąpienie CameraConfigFilter (w przykładzie o nazwie DefaultCameraConfigFilter ). Zwróć uwagę, że wszystkie cztery opcje są domyślnie zaznaczone.

    • Aby ustawić docelową liczbę klatek na sekundę :

      • Aby osiągnąć najwyższą częstotliwość klatek przechwytywania obsługiwaną przez urządzenie, upewnij się, że zaznaczone są zarówno Docelowe FPS30, jak i Docelowe FPS60 . Szybkość przechwytywania przez kamerę będzie wynosić 60 kl./s na urządzeniach, które ją obsługują, i automatycznie spadnie do 30 kl./s, jeśli nie. (Jest to ustawienie domyślne).

      • Aby ograniczyć szybkość przechwytywania przez kamerę do 30 fps, zaznacz samą opcję Target FPS30 .

    • Aby ustawić ustawienia użycia czujnika głębokości :

      • Aby użyć czujnika głębokości, jeśli urządzenie go posiada, zaznacz zarówno opcję Nie używaj, jak i Wymagaj i używaj . (Jest to ustawienie domyślne).

      • Aby uniemożliwić ARCore korzystanie z czujnika głębokości, niezależnie od tego, czy urządzenie go posiada, zaznacz opcję Nie używaj i usuń zaznaczenie opcji Wymagaj i używaj .

Wybór określonej konfiguracji kamery z dostępnych konfiguracji

Domyślnie ARCore SDK dla Unity wybiera pierwszą dostępną konfigurację. Logikę wyboru można dostosować, implementując i rejestrując własną OnChooseCameraConfigurationDelegate .

public void Awake()
{
    // Register a custom selection function for the callback.
    ARSessionManager.RegisterChooseCameraConfigurationCallback(
        _OnChooseCameraConfigurationDelegate);
}

// Define the new callback function.
private int _OnChooseCameraConfigurationDelegate(
    List<CameraConfig> supportedConfigurations)
{
    // Look through supported camera configurations, and return the
    // index that you want (using 0 as an example).
    return 0;
}