Dziękujemy za udział w konferencji Google I/O. Sprawdź sesje.

Głębia nadaje realizmowi

Przewodniki dotyczące poszczególnych platform

Deweloper aplikacji AR chce połączyć swoje treści wirtualne z rzeczywistymi. Użytkownik, który chce umieścić obiekt wirtualny w scenie, powinien mu się wydawać, że należy do prawdziwego świata. Jeśli tworzysz aplikację, w której użytkownicy będą kupować meble, musisz zadbać o to, aby mieć pewność, że fotel, który będzie kupował, pasuje do ich przestrzeni.

Ta funkcja pomaga aparatowi urządzenia w poznaniu rozmiaru i kształtu prawdziwych obiektów w danej scenie. Tworzy ona głębokie mapy lub mapy, tworząc w aplikacjach realizm. Możesz użyć informacji uzyskanych za pomocą obrazu głębi, aby zapewnić użytkownikom realistyczne i realistyczne wrażenia.

Przypadki użycia interfejsu Deth API

Interfejs Depth API może wspomagać okluzję obiektów, lepsze zanurzenie i nowatorskie interakcje, które zwiększają realizm AR. Poniżej znajdziesz kilka sposobów jej wykorzystania w swoich projektach. Przykładowe dźwięki znajdziesz w przykładowych scenach w ARCore Depth Lab, które pokazuje różne sposoby uzyskiwania dostępu do danych o głębi. Ta aplikacja Unity jest oprogramowaniem typu open source w Github.

Włącz przesłanianie

Okluzja lub dokładne renderowanie wirtualnego obiektu za rzeczywistymi obiektami jest kluczowe dla rzeczywistości wirtualnej. Rozważ wirtualny Andy, który użytkownik może chcieć umieścić w scenie, która zawiera bagażnik obok drzwi. Andy nie renderuje się bez przesłaniania, w nierealistyczny sposób pokrywa się z krawędzią połączenia. Jeśli zastosujesz głębię scenerii i uznasz, jak daleko wirtualny Andy jest w porównaniu z otoczeniem, takim jak drewniany pień, możesz dokładnie wyrenderować Andy z okluzją, dzięki czemu będzie on dużo bardziej realistyczny.

Przekształcanie sceny

Pokaż użytkownikom nowy, wciągający świat, renderując wirtualne płatki śniegu osadzone na ramionach i poduszkach kanap oraz salon w mglistym mgle. Głębokość pozwala tworzyć oświetlenie, w którym wirtualne oświetlenie wchodzi w interakcję z widzami, ukrywa się za sobą i podświetla rzeczywiste obiekty.

Odległość i głębokość pola

Chcesz pokazać, że coś jest daleko? Dzięki interfejsowi Depth API możesz używać pomiarów odległości i dodawać efekty głębi, takie jak rozmycie tła lub pierwszego planu sceny.

Włączanie interakcji użytkowników z obiektami AR

Pozwól użytkownikom „kontaktować się” z całym światem za pomocą aplikacji, umożliwiając wirtualne interakcje z rzeczywistością w wyniku kolizji i fizyki. Zobacz, jak wirtualne przedmioty przebijają się rzeczywiste przeszkody albo rozbijaj wirtualne kule i rozbijaj je na prawdziwym drzewie. Dzięki połączeniu głębokiej kolizji z fizyką gier możesz sprawić, że gra stanie się zupełnie realna.

Zwiększ skuteczność testów

Głębokość może pomóc poprawić wyniki testu skuteczności. Testy samolotów działają tylko na płaskich powierzchniach, natomiast testy głębokości działań są bardziej szczegółowe i sprawdzają się nawet w przypadku terenów o niskiej i niskiej teksturze. Dzieje się tak, ponieważ testy głębokości opierają się na informacjach o głębokości na poziomie sceny, aby określić właściwą głębokość i orientację punktu.

W przykładzie poniżej zielone Andysa reprezentują standardowe testy samolotowe, a czerwone Andysa – testy szczegółowe.

Zgodność urządzenia

Interfejs Depth API jest obsługiwany tylko na urządzeniach z mocą obliczeniową do obsługi głębokości. Należy go włączyć ręcznie w ARCore, jak opisano w sekcji Włączanie głębi.

Niektóre urządzenia mogą być również wyposażone w czujniki głębokości sprzętu, takie jak czujnik czasu lotu (ToF). Aktualną listę urządzeń, które obsługują interfejs Depth API, oraz listę urządzeń z obsługiwanym czujnikiem głębi, np. ToF, znajdziesz na stronie z obsługiwanymi urządzeniami ARCore.

Obrazy głębi

Depth API wykorzystuje do tego algorytm, który tworzy głębię i wyświetla trójwymiarowy świat. Każdy piksel obrazu głębi jest mierzony jako odległość od kamery. Algorytm ten pobiera zdjęcia z różnych kątów i porównuje je, aby oszacować odległość do każdego piksela, gdy użytkownik porusza telefonem. Wybiórczo wykorzystuje systemy uczące się, aby zwiększyć przetwarzanie, nawet przy minimalnym ruchu ze strony użytkownika. Wykorzystuje również dodatkowy sprzęt, jaki może mieć urządzenie użytkownika. Jeśli urządzenie ma specjalny czujnik głębi, np. ToF, algorytm automatycznie scala dane ze wszystkich dostępnych źródeł. Pozwala to ulepszyć bieżący obraz głębi i włączyć głębię nawet wtedy, gdy kamera się nie porusza. Pozwala to też uzyskać głębszą głębię powierzchni, na których nie ma elementów, takich jak białe ściany lub sceny dynamiczne z ruchomymi ludźmi lub obiektami.

Poniższe obrazy przedstawiają aparat w korytarzu z rowerem na ścianie oraz wizualizację obrazu głębi bazującego na zdjęciach. Obszary w kolorze czerwonym są bliżej kamery, a niebieskie są dalej.

Głębokość ruchu

Dane o głębokości są dostępne, gdy użytkownik porusza urządzeniem. Algorytm może generować precyzyjne i dokładne oszacowania z odległości 0–65 metrów. Najdokładniejszy wynik uzyskasz, gdy urządzenie znajdzie się w odległości pół metra od około 5 metrów od rzeczywistej sceny. To, co zachęci użytkowników do częstszego przesuwania urządzeń, będzie działać lepiej.

Uzyskaj głębię obrazu

Dzięki temu możesz pobierać obrazy, które pasują do każdej klatki w kamerze. Pozyskany obraz głębi ma tę samą sygnaturę czasową i pole widzenia co kamera. Prawidłowe dane dotyczące głębokości są dostępne tylko wtedy, gdy użytkownik zacznie się poruszać, ponieważ głębokość jest określana na podstawie ruchu. Na powierzchniach, które nie mają żadnych cech, np. białych ścian, będzie głębokość niedokładna.

Co dalej?

  • Zajrzyj do ARCore Depth Lab, które pokazuje różne sposoby uzyskiwania dostępu do danych o głębokości.