Nowe i godne uwagi zmiany w ARCore.
Nowości w ARCore w wersji 1.42.0
Przyciąganie do kafelka w Kreatorze danych geoprzestrzennych dla Unity
Do panelu inspektora edytora ARGeospatialCreatorAnchor
dodano przycisk „Przyciągnij do kafelka”. Ten przycisk powoduje ustawienie wartości wysokości dla kotwicy terenu i dachu (tylko do edycji) na górze geometrii kafelków 3D na bieżącej szerokości i długości geograficznej zakotwiczenia. Pamiętaj, że ta właściwość nie wpływa na działanie w czasie działania. Pomaga to dostosować pozycję reklamy zakotwiczonej w edytorze tak, aby pasowała do jej pozycji w czasie działania.
Nowości w ARCore w wersji 1.41.0
Interfejs Geospatial Creator API
Twórca geoprzestrzenny w Unity umożliwia teraz tworzenie obiektów twórcy geoprzestrzennego i manipulowanie nimi w trybie edytora. Listę nowo dostępnych klas i interfejsów API znajdziesz w przewodniku po interfejsie Geospatial Creator API.
Obsługa AR Foundation w wersji 5.x (beta)
Rozszerzenia ARCore w AR Foundation w Unity obsługują teraz AR Foundation w wersji 5.x. Aby przenieść istniejący projekt do AR Foundation, przeczytaj przewodnik po migracji.
Nowości w ARCore w wersji 1.40.0
Semantyka sceny w iOS
Interfejs Scene Semantics API jest teraz dostępny w pakiecie SDK ARCore SDK na iOS oraz rozszerzeniach ARCore dla AR Foundation firmy Unity, które są kierowane na platformę iOS. Interfejs Scene Semantics API umożliwia programistom analizowanie sceny wokół użytkownika w czasie rzeczywistym przez oznaczanie pikseli do 11 klas komponentów elementów zewnętrznych. Więcej informacji znajdziesz w artykule Wprowadzenie do semantyki scen.
iOS
Unity (Podstawy AR)
Wyszukiwanie ciekawych miejsc w narzędziu Twórca geoprzestrzenny w Unity
Twórca geoprzestrzenny dla Unity obsługuje teraz wyszukiwanie tekstowe w celu pozycjonowania widoku kafelków zdjęć 3D. Więcej informacji znajdziesz w artykule Wyszukiwanie ciekawych miejsc w Kreatorze danych geoprzestrzennych.
Nowości w ARCore w wersji 1.39.0
Ta wersja nie ma nowych funkcji.
Nowości w ARCore w wersji 1.38.0
Ta wersja nie ma nowych funkcji.
Nowości w ARCore w wersji 1.37.0
Semantyka sceny
Semantyka sceny zapewnia więcej szczegółów na temat otaczającej ją sceny, ułatwiając zrozumienie świata dookoła użytkownika. Semantyka sceny uruchamia model ML w kanale obrazu z kamery i dostarcza semantykę obrazu, w którym każdy piksel odpowiada jednej z 11 etykiet koncepcji związanych ze światem zewnętrznym.
Więcej informacji znajdziesz we wprowadzeniu do semantyki sceny i w przykładowej aplikacji semantics_java.
Android (Kotlin/Java)
Zestaw NDK (C) na Androida
Unity (Podstawy AR)
iOS
Zobacz, co nowego w ARCore w wersji 1.40.0.
Geometria krajobrazu
Streetscape Geometry to nowy interfejs ARCore Geospatial API, który pozwala wyświetlać geometrię budynków i ukształtowania terenu na obszarze wokół użytkownika, gdy włączony jest interfejs Geospatial API.
Android (Kotlin/Java)
Zobacz Przewodnik dla programistów Streetscape Geometry (Kotlin/Java). Dodatkowo zaktualizowaliśmy przykładową aplikację geospatial_java, aby obejmowała elementy Streetscape Geometry.
Zestaw NDK (C) na Androida
Więcej informacji znajdziesz w przewodniku dla programistów Streetscape Geometry (C).
Unity (Podstawy AR)
Więcej informacji znajdziesz w przewodniku dla programistów Streetscape Geometry (Unity).
iOS
Więcej informacji znajdziesz w przewodniku dla programistów Streetscape Geometry (iOS). Dodatkowo aplikacja GeospatialExample zawiera teraz Streetscape Geometry.
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
udostępnia siatki 3D.GARStreetscapeGeometry.meshTransform
udostępnia przekształcenie źródła geometrii względem przestrzeni świata sesji.GARStreetscapeGeometry.trackingState
zachowuje stan śledzenia.GARStreetscapeGeometry.type
wskazuje, czy jest to teren czy geometria budynku.GARStreetscapeGeometry.quality
określa jakość geometrii.GARStreetscapeGeometry.identifier
podaje unikalny identyfikator geometrii.GARSession.createAnchorOnStreetscapeGeometry:transform:error:
tworzy kotwicę w określonej lokalizacji i w określonej orientacji.GARSession.raycastStreetscapeGeometry:direction:error:
wykonuje model raycast o załadowanej do scenie geometrii Streetscape.
Kołki rozporowe
Kotwice na dachu to nowy typ kotwicy geoprzestrzennej, który ułatwia kotwiczenie treści na dachu.
Android (Kotlin/Java)
Zobacz Kotwice geoprzestrzenne (Java). Dodatkowo przykładowa aplikacja geospatial_java została zaktualizowana i zawiera kotwice na dachu.
Zestaw NDK (C) na Androida
Więcej informacji znajdziesz w sekcji Kotwice geoprzestrzenne (C).
Unity (Podstawy AR)
Więcej informacji znajdziesz w artykule Kotwice geoprzestrzenne. Ponadto zaktualizowaliśmy Próbkę geoprzestrzenną, aby uwzględnić kołki dachowe.
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
umożliwia kotwicę w obiektach z gry na scenie o określonej szerokości i długości geograficznej, wysokości nad dachem i w określonej orientacji.ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
iOS
Więcej informacji znajdziesz w artykule Kotwice geoprzestrzenne (iOS). Dodatkowo aplikacja GeospatialExample została dodana do aplikacji kotwice dachowe.
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
tworzy kotwicę na dachu w określonym miejscu, na wysokości nad dachem (w metrach) i w orientacji względem Ziemi.GARCreateAnchorOnRooftopFuture
przechowuje asynchroniczny stan rozpoznawania kotwicy dachu.GARRooftopAnchorState
opisuje stan rozstrzygania kotwicy na dachu.
Głębokość geoprzestrzenna
Gdy w sesji ARCore na obszarach z zasięgiem VPS włączone są zarówno tryby Depth API, jak i Streetscape Geometry, generowane zdjęcia głębi są ulepszane przy użyciu Streetscape Geometry. Funkcja Streetscape Geometry jest zintegrowana z każdym wygenerowanym zdjęciem głębi w zakresie do 65,535 metra. Aby zobaczyć tę korzyść, nie musisz wprowadzać żadnych zmian podczas wywoływania interfejsu Depth API.
Android (Kotlin/Java)
Więcej informacji znajdziesz na stronie Głębokość geoprzestrzenna (Java).
Zestaw NDK (C) na Androida
Więcej informacji znajdziesz w sekcji Głębokość geoprzestrzenna (C).
Unity (Podstawy AR)
Więcej informacji znajdziesz w sekcji Głębokość geoprzestrzenna (C).
iOS
Semantyka sceny nie jest obecnie dostępna w wersji na iOS.
Obsługa renderowania za pomocą interfejsu Vulkan
ARCore obsługuje teraz renderowanie interfejsu Vulkan dzięki wyświetlaniu obrazu z kamery za pomocą AHardwareBuffer
. Aby użyć tego bufora sprzętowego, możesz powiązać go z VkImage
.
Więcej informacji znajdziesz w artykułach na temat renderowania aplikacji ARCore za pomocą interfejsu Vulkan i przykładowej aplikacji hello_ar_vulkan_c.
Android (Kotlin/Java)
Zestaw NDK (C) na Androida
Unity (Podstawy AR)
Renderowanie z użyciem interfejsu Vulkan nie jest obecnie dostępne w środowisku Unity przy użyciu AR Foundation.
Elektroniczna stabilizacja obrazu (EIS)
Możesz skonfigurować ARCore do korzystania z elektronicznej stabilizacji obrazu, która wygładza ramki aparatu, aby zapewnić większy komfort użytkownikom.
Więcej informacji znajdziesz w artykule o włączaniu elektronicznej stabilizacji obrazu i przykładowej aplikacji hello_eis_kotlin.
Android (Kotlin/Java)
Config.ImageStabilizationMode
Frame.transformCoordinates3d()
Session.isImageStabilizationModeSupported()
- Występuje znany problem polegający na tym, że wywołanie metody
Frame.transformCoordinates3d()
przy użyciu współrzędnych 2D innych niżOPENGL_NORMALIZED_DEVICE_COORDINATES
spowoduje awarię, a nie zgłoszenie błęduIllegalArgumentException
. Rozwiążemy ten problem w kolejnej wersji.
Zestaw NDK (C) na Androida
ArImageStabilizationMode
ArFrame_transformCoordinates3d()
ArSession_isImageStabilizationModeSupported()
- Występuje znany problem polegający na tym, że wywołanie metody
ArFrame_transformCoordinates3d()
przy użyciu współrzędnych 2D innych niżAR_COORDINATES_2D_OPENGL_NORMALIZED_DEVICE_COORDINATES
spowoduje przerwanie działania aplikacji, a nie zwrócenie wartościAR_ERROR_INVALID_ARGUMENT
. Rozwiążemy ten problem w kolejnej wersji.
Unity (Podstawy AR)
Narzędzie EIS nie jest obecnie dostępne dla Unity korzystającego z AR Foundation.
iOS
Narzędzie EIS nie jest obecnie dostępne na iOS.
Asynchroniczne interfejsy API ARCore
W tej wersji wprowadziliśmy nowe asynchroniczne interfejsy API ARCore, aby poprawić ergonomię podczas pracy z operacjami asynchronicznymi, zgodnie z paradygmatem przyszłości i promise.
Android (Kotlin/Java)
- Rozwiązywanie zakotwiczonych miejsc: użyj
Earth.resolveAnchorOnTerrainAsync()
, aby otrzymaćResolveAnchorOnTerrainFuture
. Stary symbolEarth.resolveAnchorOnTerrain()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Rozpoznawanie kotwic w Google Cloud: użyj
Session.resolveCloudAnchorAsync()
, aby uzyskaćResolveCloudAnchorFuture
. Stary symbolSession.resolveCloudAnchor()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Kotwice w chmurze: użyj
Session.hostCloudAnchorAsync()
, aby uzyskaćHostCloudAnchorFuture
. Stare symboleSession.hostCloudAnchor()
iSession.hostCloudAnchorWithTtl()
zostały wycofane i mogą zostać usunięte w nowszej wersji ARCore. - Sprawdź dostępność pliku APK: aby zarejestrować wywołanie zwrotne, użyj
ArCoreApk.checkAvailabilityAsync()
. Stary symbolArCoreApk.checkAvailability()
nie został wycofany.
Zestaw NDK (C) na Androida
- Rozwiązywanie zakotwiczonych miejsc: kliknij
ArEarth_resolveAnchorOnTerrainAsync()
, aby uzyskaćArResolveAnchorOnTerrainFuture
, lubArResolveAnchorOnTerrainCallback
. Stary symbolArEarth_resolveAndAcquireNewAnchorOnTerrain()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Rozpoznawanie kotwic w chmurze: użyj
ArSession_resolveCloudAnchorAsync()
, aby uzyskaćArResolveCloudAnchorFuture
, lub użyjArResolveCloudAnchorCallback
. Stary symbolArSession_resolveAndAcquireNewCloudAnchor()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Kotwice w chmurze: użyj
ArSession_hostCloudAnchorAsync()
, aby uzyskaćArHostCloudAnchorFuture
, lub użyjArHostCloudAnchorCallback
. Stare symboleArSession_hostAndAcquireNewCloudAnchor()
iArSession_hostAndAcquireNewCloudAnchorWithTtl()
zostały wycofane i mogą zostać usunięte w nowszej wersji ARCore. - Sprawdź dostępność pliku APK: aby zarejestrować wywołanie zwrotne, użyj
ArCoreApk_checkAvailabilityAsync()
. Stary symbolArCoreApk_checkAvailability()
nie został wycofany.
Unity (Podstawy AR)
- Rozwiązywanie zakotwiczonych miejsc: użyj
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
, aby otrzymaćResolveAnchorOnTerrainPromise
. Stary symbolARAnchorManagerExtensions.ResolveAnchorOnTerrain()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Rozpoznawanie kotwic w Google Cloud: użyj
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
, aby uzyskaćResolveCloudAnchorPromise
. Stary symbolARAnchorManagerExtensions.ResolveCloudAnchorId()
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Kotwice w chmurze: użyj
ARAnchorManagerExtensions.HostCloudAnchorAsync()
, aby uzyskaćHostCloudAnchorPromise
. Stare symboleARAnchorManagerExtensions.HostCloudAnchor()
zostały wycofane i mogą zostać usunięte w nowszej wersji ARCore.
iOS
- Rozwiązywanie zakotwiczonych miejsc: użyj
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
, aby otrzymaćGARCreateAnchorOnTerrainFuture
. Stary symbolGARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Rozpoznawanie kotwic w Google Cloud: użyj
GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
, aby uzyskaćGARResolveCloudAnchorFuture
. Stary symbolGARSession.resolveCloudAnchorWithIdentifier:error:
został wycofany i może zostać usunięty w nowszej wersji ARCore. - Kotwice w chmurze: użyj
GARSession.hostCloudAnchor:TTLDays:completionHandler:error:
, aby uzyskaćGARHostCloudAnchorFuture
. Stare symboleGARSession.hostCloudAnchor:error:
iGARSession.hostCloudAnchor:TTLDays:error:
zostały wycofane i mogą zostać usunięte w nowszej wersji ARCore.
Nowości w ARCore w wersji 1.36.0
Obsługa menedżera pakietów Swift w systemie iOS
Pakiet ARCore SDK na iOS oficjalnie obsługuje teraz menedżera pakietów Swift. Instrukcje integracji z ARCore przy użyciu menedżera pakietów Swift znajdziesz w artykule Włączanie AR w aplikacji na iOS.
Nowości w ARCore w wersji 1.35.0
Dokładność ułożenia geoprzestrzennego zastępuje kierunek z odchyleniem
Wszystkie pozycje geoprzestrzenne pokazują teraz dokładność ich orientacji (obrót odchylenia), zastępując dokładność kierunku.
- Java/Kotlin: zamień
GeospatialPose.getHeading()
naGeospatialPose.getEastUpSouthQuaternion()
, aGeospatialPose.getHeadingAccuracy()
naGeospatialPose.getOrientationYawAccuracy()
. - C: zastąp
ArGeospatialPose_getHeading()
wartościąArGeospatialPose_getEastUpSouthQuaternion()
, aArGeospatialPose_getHeadingAccuracy()
naArGeospatialPose_getOrientationYawAccuracy()
. - iOS: zastąp
GARGeospatialTransform.heading
nazwąGARGeospatialTransform.eastUpSouthQTarget
, aGARGeospatialTransform.headingAccuracy
–GARGeospatialTransform.orientationYawAccuracy
. - Unity: zastąp
GeospatialPose.Heading
–GeospatialPose.EunRotation
, aGeospatialPose.HeadingAccuracy
–GeospatialPose.OrientationYawAccuracy
.
Dodatkowe zmiany i aktualizacje
Jeśli chcesz poznać inne zmiany, poprawki błędów i ulepszenia wydajności, przeczytaj informacje o wersji:
- Informacje o wersji pakietu SDK ARCore na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu SDK ARCore na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.34.0
Sprawdzanie, czy funkcje geoprzestrzenne są dostępne w bieżącej lokalizacji urządzenia
Interfejs Geospatial API może teraz sprawdzać dostępność systemu pozycjonowania wizualnego (VPS) w określonej pozycji poziomej w czasie działania. Tego interfejsu API można używać bez aktywnej sesji AR: na przykład aby pokazać przycisk „Wpisz AR” tylko wtedy, gdy dostępny jest protokół VPS,
- Java/kotlin:
Session.checkVpsAvailabilityAsync()
- K:
ArSession_checkVpsAvailabilityAsync()
- Urządzenia z iOS:
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Unity (AR Foundation):
AREarthManager.CheckVpsAvailability()
Orientacja pozycji geoprzestrzennej
Pozycje geoprzestrzenne umożliwiają teraz udostępnianie ich orientacji w przestrzeni 3D.
- Java/kotlin:
feedbackGeospatialPose.getEastUpSouthQuaternion()
- K:
ArEarth_getGeospatialPose()
- Urządzenia z iOS:
GARGeospatialTransform.eastUpSouthQTarget
- Unity:
GeospatialPose.EunRotation()
Konwersje geoprzestrzenne
Pozycje geoprzestrzenne można teraz konwertować do póz w przestrzeni kosmicznej i z nich.
Aby zobaczyć pozycję geoprzestrzenną w pozycji AR:
- Java/kotlin:
Earth.getGeospatialPose()
- K:
ArEarth_getGeospatialPose()
- Urządzenia z iOS:
GARSession.geospatialTransformFromTransform:error:
- Unity:
AREarthManager.Convert(Pose)
Aby zobaczyć pozycję AR w pozycji geoprzestrzennej:
- Java/kotlin:
Earth.getPose()
- K:
ArEarth_getPose()
- Urządzenia z iOS:
GARSession.transformFromGeospatialCoordinate:altitude:eastUpSouthQTarget:error:
- Unity:
AREarthManager.Convert(GeospatialPose)
Pozycje geoprzestrzenne uzyskane za pomocą tych funkcji mają wartość nagłówka wynoszącą zero. Zamiast tego użyj takiego kodu:
- Android (Java/Kotlin/C): kwaternion UES pozy
- iOS: element
eastUpSouthQTarget
pozy - Unity:
EunRotation
pozycji
Dodatkowe zmiany i aktualizacje
Jeśli chcesz poznać inne zmiany, poprawki błędów i ulepszenia wydajności, przeczytaj informacje o wersji:
- Informacje o wersji pakietu SDK ARCore na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu SDK ARCore na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.33.0
Nowy punkt końcowy Cloud Anchors
- Aby korzystać z kotwicy w chmurze, musisz teraz włączyć ARCore API zamiast starszego ARCore Cloud Anchor API, który został wycofany. Aby zapewnić obsługę starszych wersji aplikacji, podczas przenoszenia możesz włączyć obie wersje. Aplikacje utworzone za pomocą pakietu ARCore SDK w wersji 1.32.0 lub starszej będą kierowane na starszy interfejs API, a aplikacje utworzone za pomocą pakietu ARCore SDK w wersji 1.33.0 lub nowszej będą kierowane na nowy interfejs API. Uwaga:
- Nowy interfejs API używa nazwy domeny
arcore.googleapis.com
zamiastarcorecloudanchor.googleapis.com
. - Jeśli używasz klucza interfejsu API, który jest ograniczony przez interfejs API, musisz zezwolić na używanie interfejsu ARCore API.
- Jeśli wysyłasz żądania z backendu do interfejsu ARCore Cloud Anchor Management API, po włączeniu interfejsu ARCore API musisz też zmienić nazwę domeny na
arcore.googleapis.com
. - Stary interfejs API/punkt końcowy będą nadal obsługiwane do sierpnia 2023 r.
- Więcej informacji znajdziesz w artykule Zmiany punktów końcowych Cloud Anchor w wersji ARCore 1.33.
- Nowy interfejs API używa nazwy domeny
Kotwice terenu
- Interfejs API kotwicy terenu geoprzestrzennego tworzy zakotwiczenie w określonej pozycji poziomej i na określonej wysokości względem terenu w położeniu poziomym.
Dodatkowe zmiany i aktualizacje
Jeśli chcesz poznać inne zmiany, poprawki błędów i ulepszenia wydajności, przeczytaj informacje o wersji:
- Informacje o wersji pakietu SDK ARCore na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu SDK ARCore na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.32.0
Ta wersja nie ma nowych funkcji.
Android i Unity (AR Foundation) na Androida
- Aplikacja
targetSdkVersion
ARCore została zaktualizowana do interfejsu Android API na poziomie 32. Jeśli w aplikacji nie określonotargetSdkVersion
,targetSdkVersion
z niej zmieni się na 32 w wyniku scalania pliku manifestu.- Pakiet SDK na Androida: określenie
targetSdkVersion
w komponenciebuild.gradle
lubAndroidManifest.xml
projektu spowoduje zastąpienie wartościtargetSdkVersion
ARCore. - AR Foundation for Android: określenie docelowego poziomu interfejsu API w projekcie Unity (Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia) zastąpi wartość
targetSdkVersion
ARCore.
- Pakiet SDK na Androida: określenie
Dodatkowe zmiany i aktualizacje
Jeśli chcesz poznać inne zmiany, poprawki błędów i ulepszenia wydajności, przeczytaj informacje o wersji:
- Informacje o wersji pakietu SDK ARCore na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu SDK ARCore na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.31.0
Interfejs API ARCore Geospatial
Nowy interfejs ARCore Geospatial API wykorzystuje dane z modeli 3D Google Earth i danych zdjęć Street View z Map Google, aby umożliwiać w aplikacji realistyczne, globalne wrażenia z korzystania z rzeczywistości rozszerzonej na podstawie lokalizacji.
Przeczytaj artykuł Wprowadzenie do ARCore Geospatial API, w którym znajdziesz dokumentację dla programistów na różne platformy i dowiesz się, jak zacząć korzystać z nowego interfejsu Geospatial API.
Głębokość dużego zasięgu
Interfejs ARCore Depth API jest teraz zoptymalizowany tak, aby uwzględniać wykrywanie głębi w dłuższym zakresie i zwiększa zakres obserwacji dotyczących reprezentowanej głębi. Wykorzystane są wszystkie 16-bitowe obrazy głębi, co daje maksymalny zakres 65 535 milimetrów. Wcześniej wypełnione były tylko wartości 13-bitowe, a limit wynosił 8191 milimetrów.
Zapoznaj się ze zmianami w Depth, aby zapoznać się z dokumentacją dla deweloperów dotyczącą konkretnej platformy i zmianami w interfejsie Depth API.
Uwagi dotyczące poszczególnych platform
Android
Nowe interfejsy API danych geoprzestrzennych ARCore
Java
Earth
umożliwia lokalizację we współrzędnych zależnych od Ziemi.Earth.createAnchor()
tworzy nowy elementAnchor
w określonej lokalizacji i orientacji względem Ziemi.
Earth.Earthstate
opisuje bieżący stan obiektuEarth
, w tym jegoTrackingState
.GeospatialPose
opisuje konkretną lokalizację, wysokość i kierowanie na kompasie w odniesieniu do Ziemi.
C
ArEarth
umożliwia lokalizację przy użyciu współrzędnych zależnych od Ziemi.ArEarth_acquireNewAnchor()
tworzy nowy elementAnchor
w określonej lokalizacji i orientacji względem Ziemi.ArEarthState
opisuje bieżący stan obiektuArEarth
, w tym jegoArTrackingState
.
ArGeospatialPose
opisuje konkretną lokalizację, wysokość i kierowanie na kompasie w odniesieniu do Ziemi.
Zaktualizowane interfejsy API ARCore Depth
Java
- Wywołania funkcji interfejsu Depth API zostały zmienione:
Frame.acquireDepthImage
, byFrame.acquireDepthImage16Bits
.Frame.acquireRawDepthImage
, byFrame.acquireRawDepthImage16Bits
.- Formaty obrazu wyjściowego obu wywołań zostały zmienione z
android.graphics.ImageFormat#DEPTH16
naandroid.hardware.HardwareBuffer#D_16
. - Głębokość jest nadal przedstawiana jako 16-bitowa liczba całkowita w milimetrach, ale obecnie wszystkie 16-bitowe wartości są używane do reprezentowania głębi, umożliwiając maksymalny zakres wyrażany w zakresie od 8191 mm do 65 535 mm.
- Wywołania funkcji interfejsu Depth API
Frame.acquireDepthImage
iFrame.acquireRawDepthImage
zostały wycofane. Zamiast niej użyj elementówFrame.acquireDepthImage16Bits
iFrame.acquireRawDepthImage16Bits
.
- Wywołania funkcji interfejsu Depth API zostały zmienione:
C
- Wywołania funkcji interfejsu Depth API zostały zmienione:
ArFrame_acquireDepthImage
, byArFrame_acquireDepthImage16Bits
.- Od
ArFrame_acquireRawDepthImage
doArFrame_acquireRawDepthImage16Bits
- Formaty obrazu wyjściowego obu wywołań zostały zmienione z
AR_IMAGE_FORMAT_DEPTH16
naAR_IMAGE_FORMAT_D_16
. - Głębokość jest nadal przedstawiana jako 16-bitowa liczba całkowita w milimetrach, ale obecnie wszystkie 16-bitowe wartości są używane do reprezentowania głębi, umożliwiając maksymalny zakres wyrażany w zakresie od 8191 mm do 65 535 mm.
- Wywołania funkcji interfejsu Depth API
ArFrame_acquireDepthImage
iArFrame_acquireRawDepthImage
zostały wycofane. Zamiast nich używaj znacznikówArFrame_acquireDepthImage16Bits
iArFrame_acquireRawDepthImage16Bits
.
- Wywołania funkcji interfejsu Depth API zostały zmienione:
Unity (Podstawy AR)
Nowe interfejsy API do obsługi danych geoprzestrzennych ARCore:
AREarthManager
umożliwia lokalizację przy użyciu współrzędnych zależnych od Ziemi.EarthTrackingState
pobiera stan śledzenia ostatniej klatki w Earth.EarthState
zachowuje zgodność z warunkami błędu Earth.
GeospatialPose
opisuje konkretną lokalizację, wysokość i kierowanie na kompasie w stosunku do Ziemi.- Parametr
ARGeospatialAnchor
zapewnia kotwicę dla obiektów gry znajdujących się na scenie, określaną w lokalizacji i orientacji względem Ziemi.
iOS
Nowe interfejsy API do obsługi danych geoprzestrzennych ARCore:
GAREarth
Umożliwia lokalizowanie danych w odniesieniu do Ziemi.GAREarthState.earthState
zarządza stanami i warunkami błędów.GAREarthState.trackingState
zachowuje stan śledzenia wymagany dla danych geoprzestrzennych.
GARGeospatialTransform
Przedstawienie zmian globalnych, w tym lokalizacja, kierunek, wysokość i prognozy dokładności.GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
Tworzy kotwicę geoprzestrzenną w określonej lokalizacji i w określonej orientacji względem Ziemi.
Inne zmiany
Jeśli chcesz poznać inne zmiany, poprawki błędów i ulepszenia wydajności, przeczytaj informacje o wersji:
- Informacje o wersji pakietu SDK ARCore na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu SDK ARCore na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.30.0
Ta wersja nie ma nowych funkcji.
Android
- Interfejs API z adnotacjami zwraca wartości
@NonNull
i@Nullable
. - Zaktualizowaliśmy wersje narzędzia do kompilacji używane do tworzenia przykładów: Gradle do wersji 7.0.2 i wtyczka Androida do obsługi Gradle do 7.0.4. W przypadku istniejących aplikacji ARCore uaktualnianie tych narzędzi nie jest wymagane. Nowe funkcje, znane problemy i informacje o braku zgodności znajdziesz w dokumentacji Androida dotyczącej wtyczki Androida do obsługi Gradle.
Unity (Podstawy AR)
Dodano nową wersję na platformie
arcore-unity-extensions-without-edm4u.tgz
. Ten wariant wersji nie łączy w sobie zależności zewnętrznych, takich jak External Dependency Manager for Unity, i umożliwia uaktualnienie do EDM. Korzystanie z tej wersji może rozwiązać problemy z niezgodnością występujące podczas korzystania z bibliotek Firebase. Zapoznaj się z instrukcjami instalacji rozszerzeń ARCore dla AR Foundation.Zaktualizowano ExternalDependencyManager do wersji 1.2.168, aby zapewnić lepszą obsługę wersji 2021.2 i nowszych. Więcej informacji znajdziesz w historii zmian EDM.
Rozwiązaliśmy problem polegający na tym, że sesja ARCore konfiguruje każdą klatkę, nawet jeśli nie ma zmian w konfiguracji sesji, co powodowało spadek liczby klatek na sekundę.
iOS
- Naprawiono różne błędy i ulepszyliśmy działanie aplikacji.
Nowości w ARCore w wersji 1.29.0
Ta wersja nie ma nowych funkcji.
Android
- hello_ar_java i hello_ar_kotlin: zmieniono kolor obiektu umieszczonego za pomocą
SCREENSPACE_WITH_APPROXIMATE_DISTANCE
, aby lepiej rozróżniać obiekty umieszczone w ramach błyskawicznego miejsca docelowego); - persistent_cloud_anchor_java: dodano do przykładu brakującą zależność kompilacji. Naprawiliśmy błąd polegający na tym, że hostowanie dowolnej kotwicy miałby stan
CloudAnchorState ERROR_NOT_AUTHORIZED
, nawet jeśli projekt był skonfigurowany prawidłowo.
Unity (Podstawy AR)
- Pakiet rozszerzeń ARCore korzysta teraz z wtyczki ARKit XR, aby zapewnić zgodność zainstalowanej wersji AR Foundation z wersją wtyczki ARKit XR. Rozwiązuje to błąd kompilacji, który występował podczas instalacji rozszerzeń ARCore w Unity 2019.x i włączaniu wtyczki ARKit XR.
- Ustawienia projektu ARCore Extensions zostały przeniesione z Ustawienia projektu > XR > ARCore Extensions do Ustawienia projektu > XR Plug-in Management > ARCore Extensions.
ARCoreExtensionsConfig
,ARCoreExtensionsCameraConfigFilter
,ARCoreRecordingConfig
zostały przeniesione z menu Create > XR > ARCore Extensions do menu Create > XR.
iOS
- Naprawiono różne błędy i ulepszyliśmy działanie aplikacji.
Pełne informacje o wersji
- Pełne informacje o wersji pakietu SDK ARCore SDK na Androida
- Pełne informacje o wersji ARCore na Androida NDK
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.28.0
- Od listopada 2022 roku aplikacje obsługujące AR nie będą już mogły pozyskiwać obrazów ani metadanych obrazów w standardzie NDK. Wersje pakietu SDK, których to dotyczy, zależą od wywoływanej funkcji. Więcej informacji znajdziesz w ogłoszeniu o wycofaniu.
- C wywołania
ArImage_getNdkImage()
iArImage_getNdkCameraMetadata()
zawsze zwracają wartośćnullptr
w przypadku obiektówAImage
iACameraMetadata
. - Java: obiekt
Image
zwracany przezFrame#acquireCameraImage()
ma rozmiar0
x0
pikseli. Połączenia z numeremFrame#getImageMetadata()
zawsze powodują wywoływanie błęduIllegalArgumentException
. - Unity (AR Foundation): jeśli używasz AR Foundation 2.1 (Unity 2019 LTS), wywołania
XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
zawsze zwracająfalse
. Nie ma to wpływu na AR Foundation 4.x i nowsze wersje. WywołaniaXRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
będą działać normalnie. - Pakiet SDK ARCore SDK for Unity (wycofany): wywołania
Frame.CameraImage.AcquireCameraImageBytes()
będą miały rozmiar0
x0
pikseli. WywołaniaFrame.CameraMetadata.GetAllCameraMetadataTags()
zwracają pustą wartośćList<CameraMetadataTag>
.
- C wywołania
- Java:
ArImage#getCropRect()
zwraca teraz pełnowymiarowy prostokąt przycinania, tzn. wszystkie piksele w obrazie są prawidłowe. Dodatkowe informacje znajdziesz tutaj:android.media.Image#getCropRect()
.
Nowości w ARCore w wersji 1.27.0
Ta wersja nie ma nowych funkcji. W informacjach o wersji znajdziesz różne poprawki błędów i ulepszenia wydajności.
- Pełne informacje o wersji pakietu SDK ARCore SDK na Androida
- Pełne informacje o wersji ARCore na Androida NDK
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Oprócz różnych poprawek błędów w tej wersji wprowadziliśmy też te ulepszenia.
Przykładowe aplikacje w Kotlin
Dodano element hello_ar_kotlin, aby zademonstrować sprawdzone metody korzystania z Kotlin.
Więcej informacji znajdziesz w artykule QuickStart na Androida.
Dodano element ml_kotlin, aby pokazać, jak można używać modelu klasyfikacji obrazów z ARCore.
Więcej informacji znajdziesz w artykule Używanie ARCore jako danych wejściowych dla modeli systemów uczących się.
Nowości w ARCore w wersji 1.26.0
Ta wersja wprowadza następujące ważne zmiany:
- Identyfikatory URI są teraz obsługiwane w przypadku zbiorów danych w sekcji Nagrywanie i odtwarzanie.
Dodatkowe zmiany i aktualizacje
W informacjach o wersji poniżej znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
- Pełne informacje o wersji pakietu SDK ARCore SDK na Androida
- Pełne informacje o wersji ARCore na Androida NDK
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.25.0
Ta wersja nie ma nowych funkcji. W informacjach o wersji znajdziesz różne poprawki błędów i ulepszenia wydajności.
- Pełne informacje o wersji pakietu SDK ARCore SDK na Androida
- Pełne informacje o wersji ARCore na Androida NDK
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Pełne informacje o wersji pakietu SDK ARCore SDK dla Unity
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.24.0
Ta wersja wprowadza następujące ważne zmiany:
- nowy interfejs Raw Depth API, który zapewnia głębię obrazu bez filtrowania przestrzeni obrazów;
- Możliwość rejestrowania niestandardowych ścieżek danych w interfejsie API do nagrywania i odtwarzania
- możliwość przeprowadzania testów związanych z głębokością danych,
Głębokość nieprzetworzonej
Interfejs Raw Depth API dostarcza dane głębiowe na potrzeby zdjęcia z aparatu, które ma większą dokładność niż dane interfejsu Full Depth API, ale nie zawsze pokrywa on każdy piksel. Nieprzetworzone obrazy głębi wraz z dopasowanymi do nich obrazami ufności też mogą być dalej przetwarzane, dzięki czemu aplikacje mogą korzystać tylko z danych głębinowych, które są dostatecznie dokładne do konkretnego przypadku użycia.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Zestaw NDK (C) z Androidem
- Rozszerzenia ARCore dla AR Foundation
- Pakiet SDK ARCore dla Unity
Rejestrowanie tras niestandardowych
Nowa funkcja niestandardowej ścieżki danych dostępna w interfejsie nagrywania i odtwarzania umożliwia dodawanie niestandardowych danych do ramki ARCore podczas nagrywania i pobieranie tych samych danych z klatki podczas odtwarzania.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Zestaw NDK (C) z Androidem
- Rozszerzenia ARCore dla AR Foundation
- Pakiet SDK ARCore dla Unity
Testy trafienia głębi
Wcześniej testy można było przeprowadzać tylko na wykrytych samolotach, co ograniczało lokalizację do dużych, płaskich powierzchni. Podczas testów szczegółowości wykorzystuje się zarówno informacje płynne, jak i nieprzetworzone, aby zapewniać dokładniejsze wyniki trafień nawet na powierzchniach niepłynnych i mało tekstury.
Przewodniki dla programistów:
Dodatkowe zmiany i aktualizacje
W informacjach o wersji poniżej znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
- Pełne informacje o wersji pakietu SDK ARCore SDK na Androida
- Pełne informacje o wersji ARCore na Androida NDK
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Pełne informacje o wersji pakietu SDK ARCore SDK dla Unity
- Informacje o wersji rozszerzeń ARCore for AR Foundation
Nowości w ARCore w wersji 1.23.0
Oczekuję na obsługę dwóch aparatów
W najbliższych tygodniach wprowadzimy obsługę podwójnego aparatu. Więcej informacji znajdziesz na stronie obsługiwanych urządzeń.
Nowe narzędzia do debugowania
Wysyłając intencję transmisji, deweloperzy mogą włączyć:
Rejestrowanie wywołań interfejsu ARCore API w dzienniku debugowania Androida
Nakładka wydajności ARCore
Hosting i rozpoznawanie kotwic w chmurze
Aplikacje obsługujące AR utworzone za pomocą pakietu SDK ARCore SDK w wersji 1.11.0 lub starszej nie mogą już hostować ani rozwiązywać problemów z kotwicami w chmurze.
C: kotwice w chmurze zwrócone przez metody
ArSession_hostAndAcquireNewCloudAnchor
iArSession_resolveAndAcquireNewCloudAnchor
zawsze mają stanAR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL
.Java: kotwice w chmurze zwrócone przez metody
Session.hostCloudAnchor(Anchor)
iSession.resolveCloudAnchor(String)
zawsze mają stanAnchor.CloudAnchorState.ERROR_INTERNAL
.Unity: kotwice w chmurze zwrócone przez
XPSession.CreateCloudAnchor(Anchor)
iXPSession.ResolveCloudAnchor(string)
mają zawsze stanCloudServiceResponse.ErrorInternal
.
Aplikacje utworzone za pomocą pakietu SDK ARCore w wersji 1.12.0 lub nowszej pozostaną niezmienione. Korzystanie przez klientów z interfejsu ARCore Cloud Anchor API podlega zasadom wycofywania.
Dodatkowe zmiany i aktualizacje
Poniżej znajdziesz informacje o wersji, w których znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
Nowości w ARCore w wersji 1.22.0
W tej wersji dodaliśmy nowe interfejsy Recording and Odtwarzanie oraz Camera Config Filter API dla rozszerzeń ARCore dla AR Foundation. Aby dowiedzieć się więcej, zapoznaj się z pełnymi informacjami o wersji rozszerzeń ARCore.
Dodatkowe zmiany i aktualizacje
Poniżej znajdziesz informacje o wersji, w których znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
Nowości w ARCore w wersji 1.21.0
W tej wersji dodaliśmy nowe interfejsy API nagrywania i odtwarzania na Androida, Androida NDK i Unity.
Nagrywanie i odtwarzanie
Interfejsy API nagrywania i odtwarzania umożliwiają jednorazowe nagrywanie danych wideo i AR w danym środowisku, a potem używanie ich do zastępowania sesji kamery na żywo do celów testowych. ARCore zapisuje nagrane sesje w plikach MP4, które zawierają wiele ścieżek wideo i inne dane na urządzeniu. Następnie możesz wskazać aplikację, która będzie używać tych danych zamiast sesji kamery na żywo. Dzięki temu można odtwarzać te treści bez końca, by wypróbować różne efekty AR bez konieczności wracania do pola.
Szczegółowe informacje:
Java:
C:
Unity:
Nowości w ARCore w wersji 1.20.0
Ta wersja wprowadza następujące ważne zmiany:
Nowa obsługa trwałych kotwic w chmurze.
Zaktualizowaliśmy możliwości metadanych obrazów dla Androida i pakietu NDK na Androida.
Nowe wskazówki wymagające Gradle w wersji 5.6.4 lub nowszej, aby obsługiwać rozszerzenia ARCore dla AR Foundation lub ARCore SDK dla Unity (1.19 lub nowsze) z Unity w wersji 2018.4 lub nowszej.
Nowa obsługa trwałych kotwic w chmurze
W wersjach ARCore w wersji 1.20 usługi zakotwiczone w chmurze mogły być rozpoznawane tylko przez 24 godziny od ich pierwszego hostowania. Za pomocą trwałych kotwic w chmurze możesz teraz utworzyć kotwicę chmury z czasem życia danych (TTL) od 1 do 365 dni. Możesz też wydłużyć czas życia kotwicy po jej hostowaniu za pomocą interfejsu Cloud Anchor Management API.
Korzystanie z trwałych kotwic w chmurze podlega nowym zasadom wycofywania kotwic Cloud.
C: Przewodnik dla programistów,
ArSession_hostAndAcquireNewCloudAnchorWithTtl
iArSession_estimateFeatureMapQualityForHosting
.Java: przewodnik dla programistów,
hostCloudAnchorWithTtl
iestimateFeatureMapQualityForHosting
.iOS: przewodnik dla programistów,
hostCloudAnchor:TTLDays:error:
iestimateFeatureMapQualityForHosting:
.Rozszerzenia ARCore dla AR Foundation: przewodnik dla programistów aplikacji na Androida, przewodnik dla programistów iOS,
ARAnchorManager.HostCloudAnchor(ARAnchor, int)
,ARAnchorManager.SetAuthToken(string)
iARAnchorManager.EstimateFeatureMapQualityForHosting(Pose)
.Unity kieruje się na Androida: przewodnik dla programistów,
XPSession.CreateCloudAnchor(Anchor, int)
iXPSession.EstimateFeatureMapQualityForHosting(Pose)
.Kierowanie na Unity na iOS: przewodnik dla programistów,
XPSession.SetAuthToken(string)
iXPSession.CreateCloudAnchor(UnityARUserAnchorComponent, int)
.
Dodatkowe zmiany i aktualizacje
Poniżej znajdziesz informacje o wersji, w których znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
Nowości w ARCore w wersji 1.19.0
Ta wersja wprowadza następujące ważne zmiany:
- Nowy interfejs Instant Placement API na Androida, Androida NDK i Unity.
- Nowe wskazówki dotyczące tworzenia aplikacji na Androida 11 z użyciem Unity.
Szybkie miejsce docelowe
Interfejs Instant Placement API pozwala użytkownikowi umieścić obiekt AR na ekranie bez konieczności czekania, aż ARCore wykryje geometrię powierzchni. Miejsce docelowe obiektu jest precyzowane w czasie rzeczywistym, w miarę jak użytkownik porusza się dalej w środowisku. Gdy ARCore wykryje prawidłową pozycję w regionie, w którym znajduje się obiekt AR, biały obiekt automatycznie zaktualizuje się, aby zachować dokładną pozycję i stanie się nieprzezroczysty.
Poniższy klip pokazuje wirtualną postać Androida na rzeczywistym stole. Po pierwszym ułożeniu figurka jest biała i znacznie mniejsza. Gdy ARCore zawęzi obliczenia dotyczące wymiarów sceny, liczba przeskoczy do bardziej dokładnej pozycji. Może to spowodować zmianę postrzeganego „rozmiaru” obiektu.
Szczegółowe informacje:
Urządzenia z Androidem:
Zestaw NDK dla Androida:
Unity:
Nowości w ARCore w wersji 1.18.0
Ta wersja wprowadza następujące ważne zmiany:
- Nowy interfejs Depth API na Androida, Androida NDK i Unity.
- Nowe wskazówki dotyczące tworzenia zasobów służących do rozpoznawania twarzy rozszerzonych i importowania ich do Android Studio.
- Interfejs Depth API będzie obsługiwany w
4.1.0-preview.2
w przypadkuAR Foundation
iARCore XR Plugin
.
Interfejs API Depth
Na urządzeniach obsługujących głębię do tworzenia map głębi interfejs Depth API wykorzystuje aparat RGB z obsługą ARCore lub aktywny czujnik głębi (jeśli jest dostępny). Następnie możesz wykorzystać dostępną w mapie głębi głębię pikseli na piksel, aby wirtualne obiekty dokładnie prezentowały się przed nimi lub za nimi. W ten sposób były bardziej wciągające i realistyczne.
Na przykład te obrazy pokazują wirtualną postać Androida w prawdziwej przestrzeni z bagażem obok drzwi. Interfejs Depth API prawidłowo zakrywa postać za krawędzią pnia.
Szczegółowe informacje:
Urządzenia z Androidem:
Zestaw NDK dla Androida:
Unity:
Nowości w ARCore w wersji 1.17.0
Widoczne w pakiecie SDK ARCore na Androida
Dodaliśmy nowe metody buforowania wielu klatek z aparatu. W połączeniu z innymi technikami, takimi jak renderowanie wielowątkowe, można go wykorzystać do zmniejszenia zmienności liczby klatek.
Dodano brakujące informacje o wykorzystaniu czujnika głębi i metody pobierania docelowych FPS:
Zobacz też pełne informacje o wersji pakietu SDK do Androida na Androida.
Widoczne w pakiecie SDK ARCore SDK dla Unity
- W Unity w wersji 2018.2 lub nowszej dodaliśmy obsługę renderowania wielowątkowego, co w większości przypadków poprawia wydajność i pomaga zmniejszyć zmienność liczby klatek. To ustawienie projektu w Unity znajduje się w sekcji Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia > Renderowanie wielowątkowe. Więcej informacji znajdziesz w przewodniku dla programistów.
- Dodano
SessionStatus.ErrorCameraNotAvailable
iSessionStatus.ErrorIllegalState
, aby wskazać konkretne stany błędu sesji ARCore.
Zobacz też pełne informacje o wersji pakietu SDK ARCore SDK dla Unity.
Widoczne w pakiecie SDK ARCore SDK na iOS
Rozmiar pliku binarnego pakietu SDK Cloud Anchors znacznie się zmniejszył.
W przypadku rozszerzonych twarzy jest teraz obsługiwany kod bitowy.
Zobacz też pełne informacje o wersji pakietu SDK ARCore SDK na iOS.
Nowości w ARCore w wersji 1.16.0
Zastosowane w pakiecie ARCore SDK na Androida i Sceneform SDK na Androida
Ta wersja wprowadza następujące ważne zmiany:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje kamery o niższej rozdzielczości tekstur GPU niż domyślna rozdzielczość tekstury GPU na urządzeniu.
Więcej informacji znajdziesz w artykule na temat urządzeń obsługujących ARCore.
Te rozszerzone rozdzielczości GPU są dostępne za pomocą interfejsu API
getSupportedCameraConfigs(CameraConfigFilter)
.
Zobacz także:
Polecane w ramach rozszerzeń ARCore Extensions for AR Foundation
Ta wersja wprowadza następujące ważne zmiany:
Interfejs
XRCameraConfiguration
fundacji AR Foundation został poszerzony o metody, które pozwalają wybrać odpowiednią konfigurację kamery na podstawie własnych kryteriów. Te metody to m.in. GetTextureDimensions(), GetFPSRange() i GetDepthSensorUsages(). Przeczytaj szczegółowe instrukcje.Minimalną zalecaną wersją rozszerzeń ARCore jest teraz Unity 2019.3.0f6. AR Foundation 3.1.0-preview.6 wymaga środowiska Unity w wersji 2019.3 lub nowszej.
W międzyplatformowym API Unity używa teraz terminów kotwica, zakotwiczona w chmurze i identyfikator kotwicy Cloud. Dokumentacja rozszerzeń ARCore została zaktualizowana w związku z tym.
Zobacz także:
Widoczne w pakiecie SDK ARCore SDK dla Unity
W tej wersji wprowadzono te ważne zmiany:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje kamery o niższej rozdzielczości tekstur GPU niż domyślna rozdzielczość tekstury GPU na urządzeniu. (szczegółowe informacje znajdziesz w artykule Urządzenia obsługujące ARCore). Te rozszerzone rozdzielczości GPU są dostępne za pomocą interfejsu API ARCoreCameraConfigFilter.
Zobacz także:
Pełne informacje o wersji pakietu SDK ARCore SDK dla Unity
Nowości w ARCore w wersji 1.15.0
Polecane w ramach rozszerzeń ARCore Extensions for AR Foundation
Ta wersja wprowadza następujące ważne zmiany.
Dodaliśmy przykład z elementem CloudAnchors, który pokazuje, jak tworzyć wspólne doświadczenia AR na Androida i iOS. Zobacz instrukcje na Androida lub iOS.
Minimalną zalecaną wersją dla rozszerzeń ARCore jest teraz Unity 2019.2.17f1.
Pełne informacje o wersji rozszerzeń ARCore
Widoczne w pakiecie SDK ARCore SDK dla Unity
W tej wersji występują znane problemy.
Podgląd w wyszukiwarce może zablokować aplikację Unity, gdy będziesz korzystać z Androida 9 i kabla USB 3. Aby rozwiązać ten problem, zaktualizuj Androida do wersji 10 lub użyj kabla USB 2.
Podgląd w wyszukiwarce może się nie wyświetlić na urządzeniu, gdy rozdzielczość widoku gry w Unity jest za wysoka. Aby temu zaradzić, zmniejsz rozdzielczość widoku gry Unity w edytorze.
Pełne informacje o wersji pakietu SDK ARCore SDK dla Unity
Dodatkowe zmiany
Poniżej znajdziesz informacje o wersji, w których znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
Nowości w ARCore w wersji 1.14.0
Ta wersja wprowadza następujące ważne zmiany.
Gdy aplikacja tymczasowo utraciła aparat na rzecz innej aplikacji na urządzeniu, przyczyna niepowodzenia śledzenia jest teraz bardziej szczegółowa:
Android:
TrackingFailureReason
toCAMERA_UNAVAILABLE
, a nieNONE
.Pakiet NDK na Androida:
ArTrackingFailureReasons
toAR_TRACKING_FAILURE_REASON_CAMERA_UNAVAILABLE
, a nieAR_TRACKING_FAILURE_REASON_NONE
.Unity:
Session.LostTrackingReason
toLostTrackingReason.CameraUnavailable
, a nieNone
.
Google gromadzi i przetwarza dane związane z używaniem przez Ciebie pakietu ARCore zgodnie z Polityką prywatności Google i Warunkami korzystania z interfejsów API Google. Możesz zrezygnować z tej funkcji.
Nowości w ARCore w wersji 1.13.0
Ta wersja wprowadza następujące ważne zmiany.
Możliwość użycia rozszerzeń ARCore w AR Foundation w Unity do tworzenia aplikacji na iOS z kotwicami w chmurze.
Obsługa oszacowania oświetlenia środowiskowego HDR w Sceneform.
Poniżej znajdziesz informacje o wersji, w których znajdziesz dodatkowe poprawki błędów i inne zmiany powodujące niezgodność.
Nowości w ARCore w wersji 1.12.0
Ta wersja wprowadza następujące zmiany:
Dodaliśmy funkcję rozszerzonych twarzy w iOS. Więcej informacji znajdziesz w tym omówieniu, quickstart i przewodniku dla programistów.
Obsługa rozszerzeń ARCore w AR Foundation w Unity do tworzenia aplikacji na Androida za pomocą kotwic w chmurze.
Te zmiany dotyczące kotwic w chmurze:
- Aby zachować zgodność ze zaktualizowanymi wymaganiami dotyczącymi prywatności w przypadku korzystania z pakietów ARCore SDK w wersji 1.12 lub nowszej, musisz wyraźnie poinformować użytkowników o korzystaniu z usług zakotwiczonych w chmurze w swojej aplikacji. Aby to zrobić, umieść na ekranie z informacjami ten tekst i link do dodatkowych informacji: „Aby usprawnić tę sesję, Google przetworzy dane wizualne z Twojej kamery”. Aby to zrobić, zastosuj zalecany przepływ powiadomień dostępny w naszych przykładowych aplikacjach Cloud Anchor.
Więcej informacji znajdziesz w artykule Wymagania dotyczące prywatności użytkownika.
Aby dowiedzieć się więcej o kotwicach w chmurze:
Urządzenia z Androidem:
Zestaw NDK dla Androida:
Urządzenia z iOS:
Unity:
Rozszerzenia ARCore:
Nowości w ARCore w wersji 1.11.0
Ta wersja wprowadza następujące zmiany:
Nazwa usługi ARCore została zmieniona na Usługi Google Play dla AR. Na urządzeniach Google Play ta funkcja jest teraz rozpowszechniana w ramach Usług Google Play.
Konfiguracja kamery ARCore wymaga ustawienia na 60 kl./s na obsługiwanych urządzeniach i ma priorytet przy korzystaniu z czujnika głębi w przypadku urządzeń, które go mają. Możesz użyć nowych filtrów konfiguracji aparatu, aby ograniczyć liczbę klatek podczas nagrywania z kamery do 30 kl./s, uniemożliwić ARCore korzystanie z czujnika głębi lub użyć filtra na podstawie obu opcji.
Więcej informacji o konfiguracjach kamer:
Urządzenia z Androidem:
Zestaw NDK dla Androida:
Unity:
Nowości w ARCore w wersji 1.10.0
W tej wersji dodaliśmy nowe możliwości szacowania oświetlenia w środowisku HDR do interfejsu Lighting Estimation API na Androida, Androida NDK i Unity.
Te interfejsy API wykorzystują systemy uczące się do analizowania wejściowego obrazu z kamery i szacowania oświetlenia środowiskowego. Możesz użyć tych danych do wyrenderowania bardzo realistycznego oświetlenia, w tym głównego światła kierunkowego, cieni, oświetlenia otoczenia, zbędnych podświetleń i odbicia od obiektów wirtualnych. W efekcie powstają treści wirtualne, które wydają się bardziej realistyczne.
Szczegółowe informacje:
Urządzenia z Androidem:
Zestaw NDK dla Androida:
Unity:
Nowości w ARCore w wersji 1.9.0
Nowość w pakiecie ARCore SDK na Androida
W tej wersji dodaliśmy nowe interfejsy API i funkcje:
Scene Viewer to interaktywny użytkownik, który umożliwia korzystanie z rzeczywistości AR na Twojej stronie. Dzięki niej użytkownicy urządzeń mobilnych z Androidem mogą łatwo umieszczać i przeglądać hostowane w internecie modele 3D i wchodzić z nimi w interakcje.
Nowe funkcje dotyczące obrazów rozszerzonych:
ARCore śledzi teraz przenoszenie obrazów rozszerzonych. Przykładem ruchomych obrazów są reklamy przejeżdżające autobusem lub obrazy na płaskim obiekcie trzymanym przez użytkownika, gdy porusza on ręką.
Po wykryciu obrazu ARCore może nadal śledzić jego pozycję i orientację, nawet jeśli obraz zostanie tymczasowo przeniesiony poza widok aparatu.
Użyj
AugmentedImage#getTrackingMethod()
(Java) lubArAugmentedImage_getTrackingMethod()
(NDK), aby sprawdzić, czy obraz rozszerzony jest obecnie śledzony przez kamerę (FULL_TRACKING
), czy śledzony na podstawie jego ostatniej znanej pozycji (LAST_KNOWN_POSE
).
Dokumentacja dotycząca kotwic w chmurze zawiera teraz bardziej szczegółowe objaśnienie, w jaki sposób kotwice są hostowane i rozwiązywane.
Nowość w pakiecie ARCore SDK dla Unity
Nowe funkcje dotyczące obrazów rozszerzonych:
ARCore śledzi teraz przenoszenie obrazów rozszerzonych. Przykładem ruchomych obrazów może być reklama przejeżdżającego autobusu lub obraz na płaskim obiekcie trzymanym przez użytkownika, gdy się porusza.
Po wykryciu obrazu ARCore może nadal śledzić jego pozycję i orientację, nawet jeśli obraz zostanie tymczasowo przeniesiony poza widok aparatu.
Nowy interfejs API
AugmentedImage.GetTrackingMethod()
umożliwia aplikacji określenie, czy obraz rozszerzonych jest obecnie śledzony przez kamerę (FullTracking
), czy śledzony na podstawie jego ostatniej znanej pozycji (LastKnownPose
).
Dokumentacja dotycząca kotwic w chmurze zawiera teraz bardziej szczegółowe objaśnienie, w jaki sposób kotwice są hostowane i rozwiązywane.
Nowość w ARCore SDK na iOS
Obsługa tych urządzeń:
iPad Mini piątej generacji
iPad Air trzeciej generacji
Dokumentacja dotycząca kotwic w chmurze zawiera teraz bardziej szczegółowe objaśnienie, w jaki sposób kotwice są hostowane i rozwiązywane.