Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Pakiet NDK z Androidem (C)
Unity (Fundacja AR)
Zawartość AR musi być umieszczona i dopasowana do sceny. Tak jak obiekty w świecie rzeczywistym, obiekty wirtualne bardziej oddalone od siebie powinny być mniejsze. Aby ustalić prawidłowe położenie obiektu 3D w scenie, możesz przeprowadzić test trafień (lub raycast w AR Foundation for Unity). Odpowiednie umiejscowienie pozwala zapewnić, że treści AR będą renderowane w odpowiednim (widocznym) rozmiarze.
Testy trafień pozwalają znaleźć przecięcia między rzeczywistą geometrią 3D a promieniem wirtualnym składającym się z początku i kierunku. Najczęściej są stosowane promienie pochodzące z aparatu urządzenia, jednak ARCore zawiera interfejs API do przeprowadzania testów z wykorzystaniem dowolnego promienia we współrzędnych przestrzeni świata.
Wyobraź sobie, że dochodzi do promieniowania pochodzącego z aparatu urządzenia użytkownika, który rozciąga się do przodu, aż trafi do trójwymiarowej geometrii sceny, np. podłogi, ściany lub obiektu. Otrzymasz listę wyników działań lub skrzyżowań z wykrytą geometrią sceny. Lista jest posortowana według odległości od urządzenia – najpierw najbliższe skrzyżowanie. Jest to ważne, ponieważ zazwyczaj nie widać obiektów znajdujących się za innymi obiektami, dlatego w większości przypadków pierwszy wynik jest najbardziej istotny.
Treść wyniku działania
Wynik pojedynczego działania jest zwracany w postaci listy z następującymi informacjami o każdym wyniku:
- Odległość od punktu początkowego promienia w metrach
- Pozycja (pozycja i orientacja) wyniku działania
- Odwzorowana geometria 3D w postaci obiektu z możliwością śledzenia.
Następnie możesz użyć odpowiedniego wyniku działania, by realistycznie umieścić treści 3D za pomocą kotwicy.
Typy wyników działań
Istnieją 4 rodzaje wyników działania: głębokość, płaszczyzna, punkt cech i wyniki wyszukiwania dynamicznego miejsca docelowego. Każde z tych rozwiązań ma swoje wady i przypadki użycia, 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łębokość i orientację punktu | Prostopadła do powierzchni 3D | umieszczać wirtualny obiekt na dowolnej powierzchni (nie tylko na podłodze i ścianach); |
Samolot | Uderzenie powierzchni poziomej i/lub pionowej w celu określenia prawidłowej głębokości i orientacji punktu | Prostopadła do powierzchni 3D | Umieść obiekt na płaszczyźnie (podłodze lub na ścianie), wykorzystując pełną geometrię płaszczyzny. Natychmiastowa poprawna waga. Postaw na testy Depth |
Punkt cechy | Działanie zależy od elementów wizualnych wokół punktu dotknięcia użytkownika w celu określenia jego prawidłowej pozycji i orientacji. | Prostopadła do powierzchni 3D | Umieść obiekt na dowolnej powierzchni (nie tylko na podłodze i ścianach). |
Szybkie miejsce docelowe (trwały Raycast) | Do umieszczania treści wykorzystuje miejsce na ekranie. Początkowo używa szacowanej głębokości podanej przez aplikację. Działa od razu, ale położenie i głębokość ulegną zmianie, gdy ARCore ustali rzeczywistą geometrię sceny | +Y skierowany w górę, przeciwny do grawitacji | Umieść obiekt na płaszczyźnie (podłodze lub na ścianie), wykorzystując pełną geometrię samolotu, gdzie szybkie rozmieszczenie ma kluczowe znaczenie, a doświadczenie może tolerować nieznaną początkową głębokość i skalę. |
Zgodność urządzeń
Testy działania działają na wszystkich urządzeniach obsługujących ARCore, ale testy szczegółowości wymagają urządzeń obsługujących głębokość.
Umieszczanie treści AR za pomocą wyników działań
Po uzyskaniu wyniku działania możesz wykorzystać jego położenie jako dane wejściowe, aby umieścić treści AR w swojej scenie.