Gry tego typu polegają na umieszczaniu wirtualnych obiektów w świecie rzeczywistym

Przewodniki dotyczące poszczególnych platform

Android (Kotlin/Java)

Android NDK (C)

Unity (AR Foundation)

Treści AR muszą być prawidłowo umieszczone i dopasowane do sceny. Podobnie jak w przypadku obiektów w rzeczywistym świecie, wirtualne obiekty, które są dalej, powinny wydawać się mniejsze. Możesz przeprowadzić test trafienia (lub rzutowanie promieniowe w AR Foundation dla Unity), aby określić prawidłowe umiejscowienie obiektu 3D w scenie. Prawidłowe umieszczenie zapewnia renderowanie treści AR w odpowiednim (widocznym) rozmiarze.

Testy trafień wykrywają przecięcia między geometrią 3D świata rzeczywistego a wirtualnym promieniem składającym się z punktu początkowego i kierunku. Najczęściej używane są promienie, których źródłem jest kamera urządzenia, ale ARCore zawiera interfejs API do przeprowadzania testów trafień za pomocą dowolnego promienia w przestrzeni współrzędnych świata.

Wyobraź sobie promień wychodzący z kamery urządzenia użytkownika, który rozciąga się do przodu, aż natrafi na geometrię 3D sceny, np. podłogę, ścianę lub obiekt. Gdy to nastąpi, otrzymasz listę wyników trafień, czyli przecięć z wykrytą geometrią sceny. Lista jest posortowana według odległości od urządzenia, przy czym najbliższe skrzyżowanie jest na pierwszym miejscu. Jest to ważne, ponieważ zwykle nie widać obiektów zasłoniętych przez inne obiekty, więc w większości przypadków pierwszy wynik jest najważniejszy.

Zawartość wyniku działania

Pojedynczy wynik wyszukiwania jest zwracany jako lista zawierająca te informacje o każdym wyniku:

  • Odległość od punktu początkowego promienia w metrach
  • Pozycja (położenie i orientacja) wyniku trafienia
  • Geometria 3D, w którą uderzasz, w postaci obiektu śledzonego.

Następnie możesz użyć wybranego wyniku trafienia, aby realistycznie umieścić treści 3D za pomocą kotwicy.

Typy wyników działań

Wyróżniamy 4 rodzaje wyników trafień: głębokość, płaszczyzna, punkt charakterystyczny i wyniki natychmiastowego umieszczania. Każda z nich ma własne przypadki użycia i wady, co pokazuje poniższa tabela.

Typ wyniku działania Opis Orientacja Przypadek użycia
Głębokość Wykorzystuje informacje o głębi z całej sceny, aby określić prawidłową głębię i orientację punktu. Prostopadle do powierzchni 3D umieszczać wirtualne obiekty na dowolnej powierzchni (nie tylko na podłogach i ścianach);
Samolot Uderza w powierzchnie poziome lub pionowe, aby określić prawidłową głębokość i orientację punktu. Prostopadle do powierzchni 3D Umieść obiekt na płaszczyźnie (podłodze lub ścianie) przy użyciu pełnej geometrii płaszczyzny. Potrzebuję od razu prawidłowej skali. Wycofanie się z testu pozycji wskaźnika z głębią
Punkt charakterystyczny Opiera się na elementach wizualnych wokół punktu dotknięcia przez użytkownika, aby określić prawidłową pozycję i orientację punktu. Prostopadle do powierzchni 3D Umieszczanie obiektu na dowolnej powierzchni (nie tylko na podłogach i ścianach)
Natychmiastowe umieszczanie (trwałe śledzenie promieni) Wykorzystuje przestrzeń ekranu do umieszczania treści. Początkowo korzysta z szacowanej głębi podanej przez aplikację. Działa natychmiast, ale pozycja i rzeczywista głębia zmienią się, gdy ARCore będzie w stanie określić rzeczywistą geometrię sceny. Oś +Y skierowana do góry, przeciwnie do grawitacji Umieść obiekt na płaszczyźnie (podłodze lub ścianie) za pomocą pełnej geometrii płaszczyzny, gdy szybkie umieszczenie jest kluczowe, a doświadczenie może tolerować nieznaną początkową głębokość i skalę.

Zgodność urządzeń

Testy trafień działają na wszystkich urządzeniach obsługujących ARCore, ale testy trafień z użyciem głębi wymagają urządzeń obsługujących głębię.

Używanie wyników trafień do umieszczania treści AR

Gdy uzyskasz wynik, możesz użyć jego pozycji jako danych wejściowych, aby umieścić w scenie treści AR.