Nowe i ważne zmiany w ARCore.
Nowości w ARCore w wersji 1.50.0
Zmiany w targetSdkVersion
pakietu ARCore SDK
targetSdkVersion
ARCore zostało zaktualizowane do poziomu interfejsu API Androida 36. Jeśli Twoja aplikacja nie określatargetSdkVersion
, jej targetSdkVersion
zmieni się na 36 z powodu scalania manifestu.
W przypadku Unity określenie docelowego poziomu API w Ustawieniach projektu > Odtwarzacz > Android > Inne ustawienia w projekcie Unity zastąpi wartość ARCoretargetSdkVersion
.
Nowości w ARCore w wersji 1.49.0
Poprawki błędów i lepsze działanie aplikacji
Nowości w ARCore w wersji 1.48.0
Pełna obsługa Unity 6 i AR Foundation 6
Rozszerzenia ARCore dla AR Foundation w Unity obsługują teraz AR Foundation 6. Aby uzyskać zgodną wersję ARCore Extensions dla AR Foundation, skorzystaj z tych metod instalacji:
- Do
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf6
, - W przypadku
Add package from tarball...
: użyj wersji oznaczonej symbolemarf6
ze strony z wersjami.
Aby przejść z AR Foundation 5 na AR Foundation 6, zapoznaj się z tym przewodnikiem.
Zmiany powodujące niezgodność i zmiany w działaniu
- Pakiet SDK nie obsługuje już docelowych platform wdrożenia w przypadku wersji iOS starszych niż 13.0.
Nowości w ARCore w wersji 1.47.0
Wersja beta obsługi Unity 6 i AR Foundation 6
Rozszerzenia ARCore dla AR Foundation w Unity obsługują teraz w wersji beta AR Foundation 6, co umożliwia obsługę Unity 6. Aby uzyskać zgodną wersję ARCore Extensions dla AR Foundation, skorzystaj z tych metod instalacji:
- Do
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf6
, - W przypadku
Add package from tarball...
: użyj wersji oznaczonej symbolemarf6
ze strony z wersjami.
Aby przejść z AR Foundation 5 na AR Foundation 6, zapoznaj się z tym przewodnikiem.
Poprawki błędów
- Naprawiono problem z płaszczyzną w przykładzie Cloud Anchor, która nie była przezroczysta w Unity 6
Inne zmiany
- Gałąź
main
w repozytorium GitHub ARCore Extensions została przełączona na śledzenie gałęziarf5
.
Nowości w ARCore w wersji 1.46.0
Zmiany w targetSdkVersion
pakietu ARCore SDK
targetSdkVersion
ARCore zostało zaktualizowane do poziomu interfejsu API Androida 35. Jeśli Twoja aplikacja nie określatargetSdkVersion
, targetSdkVersion
aplikacji zmieni się na 35 z powodu scalania manifestu.
W przypadku Unity określenie docelowego poziomu API w Ustawieniach projektu > Odtwarzacz > Android > Inne ustawienia w projekcie Unity zastąpi wartość ARCoretargetSdkVersion
.
Nowości w ARCore w wersji 1.45.0
Flash Mode API
ARCore obsługuje teraz włączanie trybu latarki na urządzeniu, co pozwala na lepsze postrzeganie w ciemnym otoczeniu.
Android (Kotlin/Java)
Config.FlashMode
: opcja konfiguracji umożliwiająca włączenie lub wyłączenie lampy błyskowej na urządzeniu.- Więcej informacji o wykrywaniu możliwości lampy błyskowej i włączaniu trybu latarki znajdziesz w przewodniku dla programistów.
Android NDK (C)
ArFlashMode
: opcja konfiguracji umożliwiająca włączenie lub wyłączenie lampy błyskowej na urządzeniu.- Więcej informacji o wykrywaniu możliwości lampy błyskowej i włączaniu trybu latarki znajdziesz w przewodniku dla programistów.
Rozszerzenia ARCore dla AR Foundation w Unity obsługują AR Foundation 5.
Rozszerzenia ARCore dla AR Foundation oficjalnie obsługują teraz AR Foundation 5. Jeśli używasz AR Foundation 5 (zweryfikowanej wersji w Unity w wersjach 2022 i 2023), skorzystaj z tych metod instalacji, aby uzyskać zgodną wersję ARCore Extensions for AR Foundation:
- Przez
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf5
, - W przypadku
Add package from tarball...
: użyj wersji oznaczonej symbolemarf5
ze strony z wersjami.
Projekty, które nadal korzystają z AR Foundation w wersji 4, mogą używać tych metod instalacji:
- Przez
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf4
, - W przypadku
Add package from tarball...
: użyj wersji oznaczonej symbolemarf4
ze strony z wersjami.
Aby uaktualnić projekt z AR Foundation 4 do AR Foundation 5, zapoznaj się z przewodnikiem po migracji.
Symbole skryptów niestandardowych, takie jak ARCORE_USE_ARF_5
z wersji beta, nie są już używane.
Nowości w ARCore w wersji 1.44.0
Ta wersja nie zawiera nowych funkcji.
Nowości w ARCore w wersji 1.43.0
Migracja interfejsu Places API w Geospatial Creator
Funkcja wyszukiwania w Geospatial Creator korzysta teraz z New Places API od Google. Aby korzystać z funkcji wyszukiwania, włącz „Places API (New)” w Google Cloud Console.
Nowości w ARCore w wersji 1.42.0
Przyciąganie do kafelka w Geospatial Creator w Unity
Do panelu ARGeospatialCreatorAnchor
Inspektora edytora dodaliśmy przycisk „Przyciągaj do kafelka”. Ten przycisk ustawia wartość wysokości kotwicy terenu lub dachu, która jest widoczna tylko w edytorze, na górę geometrii kafelka 3D na podstawie bieżącej szerokości i długości geograficznej kotwicy. Pamiętaj, że ta właściwość nie ma wpływu na działanie w czasie wykonywania. Ułatwia to dostosowanie pozycji kotwicy w edytorze do jej pozycji w czasie działania.
Nowości w ARCore w wersji 1.41.0
Geospatial Creator API
Geospatial Creator for Unity obsługuje teraz tworzenie obiektów Geospatial Creator i manipulowanie nimi w trybie edytora. Nowo dostępne klasy i interfejsy API opisano w przewodniku po interfejsie Geospatial Creator API.
Obsługa AR Foundation w wersji 5.x (beta)
Rozszerzenia ARCore dla AR Foundation w Unity obsługują teraz AR Foundation w wersji 5.x. Jeśli chcesz przenieść istniejący projekt do AR Foundation, zapoznaj się z przewodnikiem po migracji.
Nowości w ARCore w wersji 1.40.0
Semantyka sceny na iOS
Interfejs Scene Semantics API jest teraz dostępny w pakiecie ARCore SDK na iOS, a także w rozszerzeniach ARCore dla AR Foundation w Unity, które są przeznaczone na platformę iOS. Interfejs Scene Semantics API umożliwia deweloperom rozpoznawanie w czasie rzeczywistym sceny otaczającej użytkownika i oznaczanie pikseli w 11 kategoriach elementów zewnętrznych. Więcej informacji znajdziesz w tym artykule.
iOS
Unity (AR Foundation)
Wyszukiwanie interesujących miejsc w Geospatial Creator w Unity
Geospatial Creator for Unity obsługuje teraz wyszukiwanie tekstowe, które umożliwia pozycjonowanie widoku fotogrametrycznych kafelków 3D. Więcej informacji znajdziesz w artykule Wyszukiwanie miejsc w Geospatial Creator.
Nowości w ARCore w wersji 1.39.0
Ta wersja nie zawiera nowych funkcji.
Nowości w ARCore w wersji 1.38.0
Ta wersja nie zawiera nowych funkcji.
Nowości w ARCore w wersji 1.37.0
Semantyka sceny
Semantyka sceny dostarcza więcej szczegółów o otoczeniu, dzięki czemu użytkownik może lepiej zrozumieć świat wokół siebie. Semantyka sceny uruchamia model uczenia maszynowego na strumieniu obrazu z kamery i dostarcza obraz semantyczny, w którym każdy piksel odpowiada jednej z 11 etykiet koncepcji zewnętrznych.
Więcej informacji znajdziesz w artykule Wprowadzenie do semantyki sceny oraz w przykładowej aplikacji semantics_java.
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
iOS
Geometria krajobrazu ulicznego
Streetscape Geometry to nowy interfejs ARCore Geospatial API, który po włączeniu interfejsu Geospatial API udostępnia geometrię budynków i terenu w obszarze wokół użytkownika.
Android (Kotlin/Java)
Zapoznaj się z przewodnikiem dla programistów dotyczącym geometrii Streetscape (Kotlin/Java). Dodatkowo zaktualizowaliśmy przykładową aplikację geospatial_java, aby uwzględnić geometrię Streetscape.
Android NDK (C)
Więcej informacji znajdziesz w przewodniku dla programistów dotyczącym geometrii krajobrazu (C).
Unity (AR Foundation)
Więcej informacji znajdziesz w przewodniku dla programistów dotyczącym geometrii Streetscape (Unity).
iOS
Więcej informacji znajdziesz w przewodniku dla programistów dotyczącym geometrii Streetscape (iOS). Dodatkowo zaktualizowaliśmy aplikację GeospatialExample, aby uwzględnić w niej geometrię Streetscape.
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
udostępnia siatki 3D.GARStreetscapeGeometry.meshTransform
udostępnia transformację początku geometrii względem przestrzeni świata sesji.GARStreetscapeGeometry.trackingState
zachowuje stan śledzenia.GARStreetscapeGeometry.type
– wskazuje, czy jest to geometria terenu czy budynku.GARStreetscapeGeometry.quality
określa jakość geometrii.GARStreetscapeGeometry.identifier
zawiera unikalny identyfikator geometrii.GARSession.createAnchorOnStreetscapeGeometry:transform:error:
tworzy kotwicę w określonej lokalizacji i orientacji.GARSession.raycastStreetscapeGeometry:direction:error:
wykonuje raycasting na geometrię Streetscape załadowaną w scenie.
Punkty kotwiczenia na dachu
Kotwice na dachu to nowy typ kotwic geoprzestrzennych, który pomaga przypinać treści do dachu.
Android (Kotlin/Java)
Zobacz Kotwice geoprzestrzenne (Java). Dodatkowo przykładowa aplikacja geospatial_java została zaktualizowana, aby uwzględniać kotwice na dachu.
Android NDK (C)
Więcej informacji znajdziesz w sekcji Kotwice geoprzestrzenne (C).
Unity (AR Foundation)
Więcej informacji znajdziesz w sekcji Kotwice geoprzestrzenne. Dodatkowo zaktualizowaliśmy przykładowy plik danych geoprzestrzennych, aby uwzględniał punkty zakotwiczenia na dachu.
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
zapewnia punkt zakotwiczenia dla obiektów w scenie na określonej szerokości i długości geograficznej, wysokości nad dachem oraz orientacji.ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
iOS
Więcej informacji znajdziesz w artykule Kotwice przestrzenne (iOS). Dodatkowo zaktualizowaliśmy aplikację GeospatialExample, aby uwzględnić w niej kotwice na dachu.
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
tworzy punkt zakotwiczenia na dachu w określonej lokalizacji, na określonej wysokości nad dachem (w metrach) i o określonej orientacji względem Ziemi.GARCreateAnchorOnRooftopFuture
zawiera asynchroniczny stan rozwiązywania kotwicy na dachu.GARRooftopAnchorState
opisuje stan rozwiązywania kotwicy na dachu.
Głębokość geoprzestrzenna
Gdy w sesji ARCore w obszarach objętych VPS włączone są zarówno interfejs Depth API, jak i tryb Geometria ulic, wygenerowane obrazy głębi są ulepszane za pomocą geometrii ulic. Geometria krajobrazu miejskiego jest zintegrowana z każdym wygenerowanym obrazem głębi w zakresie do 65,535 m. Aby skorzystać z tej zalety, nie musisz wprowadzać żadnych zmian podczas wywoływania interfejsu Depth API.
Android (Kotlin/Java)
Więcej informacji znajdziesz w artykule Geospatial Depth (Java).
Android NDK (C)
Więcej informacji znajdziesz w sekcji Geospatial Depth (C).
Unity (AR Foundation)
Więcej informacji znajdziesz w sekcji Geospatial Depth (C).
iOS
Semantyka sceny jest obecnie niedostępna na urządzeniach z iOS.
Obsługa renderowania za pomocą interfejsu Vulkan
ARCore obsługuje teraz renderowanie w Vulkanie, udostępniając obraz z kamery za pomocą AHardwareBuffer
. Możesz użyć tego bufora sprzętowego, wiążąc go z obiektem VkImage
.
Więcej informacji znajdziesz w artykule Renderowanie aplikacji ARCore za pomocą platformy Vulkan oraz w przykładowej aplikacji hello_ar_vulkan_c.
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Renderowanie za pomocą interfejsu Vulkan nie jest obecnie dostępne w przypadku Unity z użyciem AR Foundation.
Elektroniczna stabilizacja obrazu (EIS)
Możesz skonfigurować ARCore tak, aby korzystał z elektronicznej stabilizacji obrazu, która wygładza klatki z kamery, co zwiększa płynność działania aplikacji.
Więcej informacji znajdziesz w artykule Włączanie elektronicznej stabilizacji obrazu oraz w przykładowej aplikacji hello_eis_kotlin.
Android (Kotlin/Java)
Config.ImageStabilizationMode
Frame.transformCoordinates3d()
Session.isImageStabilizationModeSupported()
- Występuje znany problem, który powoduje, że wywołanie funkcji
Frame.transformCoordinates3d()
ze współrzędnymi 2D innymi niżOPENGL_NORMALIZED_DEVICE_COORDINATES
powoduje awarię zamiast zgłoszenia wyjątkuIllegalArgumentException
. Ten problem zostanie rozwiązany w kolejnej wersji.
Android NDK (C)
ArImageStabilizationMode
ArFrame_transformCoordinates3d()
ArSession_isImageStabilizationModeSupported()
- Występuje znany problem, w którym wywołanie funkcji
ArFrame_transformCoordinates3d()
ze współrzędnymi 2D innymi niżAR_COORDINATES_2D_OPENGL_NORMALIZED_DEVICE_COORDINATES
spowoduje przerwanie działania aplikacji zamiast zwrócenia wartościAR_ERROR_INVALID_ARGUMENT
. Ten problem zostanie rozwiązany w kolejnej wersji.
Unity (AR Foundation)
EIS nie jest obecnie dostępny w przypadku Unity z użyciem AR Foundation.
iOS
EIS nie jest obecnie dostępny na urządzeniach z iOS.
Asynchroniczne interfejsy API ARCore
Ta wersja wprowadza nowe asynchroniczne interfejsy API ARCore, które zwiększają wygodę pracy z operacjami asynchronicznymi zgodnie z paradygmatem Future i Promise.
Android (Kotlin/Java)
- Rozwiązywanie problemów z kotwicami terenu: użyj
Earth.resolveAnchorOnTerrainAsync()
, aby uzyskaćResolveAnchorOnTerrainFuture
. Stary symbolEarth.resolveAnchorOnTerrain()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w chmurze: użyj
Session.resolveCloudAnchorAsync()
, aby uzyskaćResolveCloudAnchorFuture
. Stary symbolSession.resolveCloudAnchor()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Hostowanie kotwic w chmurze: użyj
Session.hostCloudAnchorAsync()
, aby uzyskaćHostCloudAnchorFuture
. Stare symboleSession.hostCloudAnchor()
iSession.hostCloudAnchorWithTtl()
zostały wycofane i mogą zostać usunięte w późniejszej wersji ARCore. - Sprawdź dostępność pakietu APK: użyj
ArCoreApk.checkAvailabilityAsync()
, aby zarejestrować wywołanie zwrotne. Stary symbolArCoreApk.checkAvailability()
nie został wycofany.
Android NDK (C)
- Rozwiązywanie problemów z kotwicami terenu: użyj
ArEarth_resolveAnchorOnTerrainAsync()
, aby uzyskaćArResolveAnchorOnTerrainFuture
, lub użyjArResolveAnchorOnTerrainCallback
. Stary symbolArEarth_resolveAndAcquireNewAnchorOnTerrain()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie 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 późniejszej wersji ARCore. - Hostowanie kotwic 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 późniejszej wersji ARCore. - Sprawdź dostępność pakietu APK: użyj
ArCoreApk_checkAvailabilityAsync()
, aby zarejestrować wywołanie zwrotne. Stary symbolArCoreApk_checkAvailability()
nie został wycofany.
Unity (AR Foundation)
- Rozwiązywanie problemów z kotwicami terenu: użyj
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
, aby uzyskaćResolveAnchorOnTerrainPromise
. Stary symbolARAnchorManagerExtensions.ResolveAnchorOnTerrain()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w chmurze: użyj
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
, aby uzyskaćResolveCloudAnchorPromise
. Stary symbolARAnchorManagerExtensions.ResolveCloudAnchorId()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Hostowanie kotwic w chmurze: użyj
ARAnchorManagerExtensions.HostCloudAnchorAsync()
, aby uzyskaćHostCloudAnchorPromise
. Stare symboleARAnchorManagerExtensions.HostCloudAnchor()
zostały wycofane i mogą zostać usunięte w późniejszej wersji ARCore.
iOS
- Rozwiązywanie problemów z kotwicami terenu: użyj
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
, aby uzyskaćGARCreateAnchorOnTerrainFuture
. Stary symbolGARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w chmurze: użyj
GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
, aby uzyskaćGARResolveCloudAnchorFuture
. Stary symbolGARSession.resolveCloudAnchorWithIdentifier:error:
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Hostowanie kotwic 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 późniejszej wersji ARCore.
Nowości w ARCore w wersji 1.36.0
Obsługa menedżera pakietów Swift na iOS
Pakiet ARCore SDK na iOS oficjalnie obsługuje teraz Swift Package Manager. Instrukcje integracji z ARCore za pomocą 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ść pozycji przestrzennej zastępuje kierunek odchyleniem
Wszystkie pozycje przestrzenne udostępniają teraz dokładność orientacji obrotu wokół osi Y, zastępując dokładność kierunku.
- Java/Kotlin: zastąp
GeospatialPose.getHeading()
ciągiemGeospatialPose.getEastUpSouthQuaternion()
, aGeospatialPose.getHeadingAccuracy()
ciągiemGeospatialPose.getOrientationYawAccuracy()
. - C: Zastąp
ArGeospatialPose_getHeading()
elementemArGeospatialPose_getEastUpSouthQuaternion()
, aArGeospatialPose_getHeadingAccuracy()
elementemArGeospatialPose_getOrientationYawAccuracy()
. - iOS: zastąp
GARGeospatialTransform.heading
ciągiemGARGeospatialTransform.eastUpSouthQTarget
, aGARGeospatialTransform.headingAccuracy
ciągiemGARGeospatialTransform.orientationYawAccuracy
. - Unity: zamień
GeospatialPose.Heading
naGeospatialPose.EunRotation
iGeospatialPose.HeadingAccuracy
naGeospatialPose.OrientationYawAccuracy
.
Dodatkowe zmiany i aktualizacje
Więcej informacji o innych zmianach, poprawkach błędów i usprawnieniach znajdziesz w informacjach o wersji:
- Informacje o wersjach pakietu ARCore SDK na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore dla 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 w czasie działania sprawdzać dostępność systemu pozycjonowania wizualnego (VPS) w określonej pozycji poziomej. Ten interfejs API można używać bez aktywnej sesji AR, np. aby wyświetlać przycisk „Wejdź w AR” tylko wtedy, gdy dostępny jest VPS.
- Java/Kotlin:
Session.checkVpsAvailabilityAsync()
- C:
ArSession_checkVpsAvailabilityAsync()
- iOS:
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Unity (AR Foundation):
AREarthManager.CheckVpsAvailability()
Orientacja pozycji geoprzestrzennej
Pozycje geoprzestrzenne udostępniają teraz swoją orientację w przestrzeni 3D.
- Java/Kotlin:
feedbackGeospatialPose.getEastUpSouthQuaternion()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARGeospatialTransform.eastUpSouthQTarget
- Unity:
GeospatialPose.EunRotation()
Konwersje dotyczące pozycji geoprzestrzennej
Pozycje geoprzestrzenne można teraz przekształcać w pozycje w przestrzeni świata (AR) i odwrotnie.
Aby uzyskać pozę geoprzestrzenną z pozy AR:
- Java/Kotlin:
Earth.getGeospatialPose()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARSession.geospatialTransformFromTransform:error:
- Unity:
AREarthManager.Convert(Pose)
Aby uzyskać pozę AR z pozy geoprzestrzennej:
- Java/Kotlin:
Earth.getPose()
- C:
ArEarth_getPose()
- iOS:
GARSession.transformFromGeospatialCoordinate:altitude:eastUpSouthQTarget:error:
- Unity:
AREarthManager.Convert(GeospatialPose)
Pozycje geoprzestrzenne uzyskane za pomocą tych funkcji mają wartość kierunku ustawioną na zero. Zamiast tego użyj tych ustawień:
- Android (Java/Kotlin/C): kwaternion EUS pozycji
- iOS:
eastUpSouthQTarget
- Unity: pozycja
EunRotation
Dodatkowe zmiany i aktualizacje
Więcej informacji o innych zmianach, poprawkach błędów i usprawnieniach znajdziesz w informacjach o wersji:
- Informacje o wersjach pakietu ARCore SDK na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.33.0
Nowy punkt końcowy Cloud Anchors
- Aby korzystać z Cloud Anchors, musisz włączyć ARCore API zamiast starszego interfejsu ARCore Cloud Anchor API, który jest obecnie wycofany. Aby obsługiwać starsze wersje aplikacji, podczas przechodzenia na nową wersję możesz włączyć obie opcje. 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 interfejs ARCore API.
- Jeśli wysyłasz żądania do interfejsu ARCore Cloud Anchor Management API z backendu, po włączeniu interfejsu ARCore API musisz też zmienić nazwę domeny na
arcore.googleapis.com
. - Stary interfejs API lub punkt końcowy będzie nadal obsługiwany do sierpnia 2023 r.
- Więcej informacji znajdziesz w artykule Zmiany w punkcie końcowym kotwicy w chmurze ARCore 1.33.
- Nowy interfejs API używa nazwy domeny
Kotwice terenu
- Interfejs Geospatial Terrain anchor API tworzy kotwicę w określonym położeniu poziomym i na określonej wysokości względem terenu w tym położeniu.
Dodatkowe zmiany i aktualizacje
Więcej informacji o innych zmianach, poprawkach błędów i usprawnieniach znajdziesz w informacjach o wersji:
- Informacje o wersjach pakietu ARCore SDK na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.32.0
Ta wersja nie zawiera nowych funkcji.
Android i Unity (AR Foundation) na Androida
- ARCore w wersji
targetSdkVersion
został zaktualizowany do poziomu 32 interfejsu API Androida. Jeśli Twoja aplikacja nie określatargetSdkVersion
, jejtargetSdkVersion
stanie się równa 32 z powodu scalania manifestu.- Pakiet SDK na Androida: określenie wartości
targetSdkVersion
w plikubuild.gradle
lubAndroidManifest.xml
w projekcie spowoduje zastąpienie wartościtargetSdkVersion
w ARCore. - AR Foundation na Androida: określenie docelowego poziomu interfejsu API w Ustawieniach projektu > Odtwarzacz > Android > Inne ustawienia w projekcie Unity zastąpi wartość
targetSdkVersion
ARCore.
- Pakiet SDK na Androida: określenie wartości
Dodatkowe zmiany i aktualizacje
Więcej informacji o innych zmianach, poprawkach błędów i usprawnieniach znajdziesz w informacjach o wersji:
- Informacje o wersjach pakietu ARCore SDK na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.31.0
ARCore Geospatial API
Nowy interfejs ARCore Geospatial API wykorzystuje dane z modeli 3D Google Earth i zdjęcia Street View z Map Google, aby umożliwić Twojej aplikacji tworzenie wciągających, globalnych i opartych na lokalizacji funkcji rzeczywistości rozszerzonej.
Więcej informacji znajdziesz w artykule Wprowadzenie do interfejsu ARCore Geospatial API, w którym znajdziesz dokumentację dla programistów dotyczącą poszczególnych platform i dowiesz się, jak zacząć korzystać z nowego interfejsu Geospatial API.
Głębia dalekiego zasięgu
Interfejs ARCore Depth API został zoptymalizowany pod kątem wykrywania głębi na większych odległościach, co zwiększa zakres reprezentowanych obserwacji głębi. Wykorzystywane są wszystkie 16 bitów obrazu głębi, co zapewnia maksymalny zakres 65 535 milimetrów. Wcześniej wypełnionych było tylko 13 bitów, a limit wynosił 8191 milimetrów.
Więcej informacji o zmianach w interfejsie Depth API znajdziesz w dokumentacji dla programistów dotyczącej zmian w interfejsie Depth na poszczególnych platformach.
Uwagi dotyczące konkretnych platform
Android
Nowe interfejsy ARCore Geospatial API
Java
Earth
umożliwia lokalizację za pomocą współrzędnych względnych względem Ziemi.Earth.createAnchor()
tworzy nowyAnchor
w określonej lokalizacji i orientacji względem Ziemi.
Earth.Earthstate
opisuje bieżący stanEarth
, w tym jegoTrackingState
.GeospatialPose
opisuje konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.
C
ArEarth
umożliwia lokalizację za pomocą współrzędnych względnych względem Ziemi.ArEarth_acquireNewAnchor()
tworzy nowyAnchor
w określonej lokalizacji i orientacji względem Ziemi.ArEarthState
opisuje bieżący stanArEarth
, w tym jegoArTrackingState
.
ArGeospatialPose
opisuje konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.
Zaktualizowane interfejsy ARCore Depth API
Java
- Wywołania funkcji Depth API uległy zmianie:
Frame.acquireDepthImage
użytkownikowiFrame.acquireDepthImage16Bits
.Frame.acquireRawDepthImage
użytkownikowiFrame.acquireRawDepthImage16Bits
.- Formaty obrazów wyjściowych w przypadku obu wywołań zmieniły się z
android.graphics.ImageFormat#DEPTH16
naandroid.hardware.HardwareBuffer#D_16
. - Głębia jest nadal reprezentowana jako 16-bitowa liczba całkowita w milimetrach, ale teraz wszystkie 16 bitów jest używanych do reprezentowania głębi, co pozwala na zwiększenie maksymalnego zakresu wyrażania z 8191 mm do 65 535 mm.
- Wywołania funkcji Depth API
Frame.acquireDepthImage
iFrame.acquireRawDepthImage
zostały wycofane. Zamiast nich używaj interfejsówFrame.acquireDepthImage16Bits
iFrame.acquireRawDepthImage16Bits
.
- Wywołania funkcji Depth API uległy zmianie:
C
- Wywołania funkcji Depth API uległy zmianie:
ArFrame_acquireDepthImage
użytkownikowiArFrame_acquireDepthImage16Bits
.- Od
ArFrame_acquireRawDepthImage
doArFrame_acquireRawDepthImage16Bits
- Formaty obrazów wyjściowych w przypadku obu wywołań zmieniły się z
AR_IMAGE_FORMAT_DEPTH16
naAR_IMAGE_FORMAT_D_16
. - Głębia jest nadal reprezentowana jako 16-bitowa liczba całkowita w milimetrach, ale teraz wszystkie 16 bitów jest używanych do reprezentowania głębi, co pozwala na zwiększenie maksymalnego zakresu wyrażania z 8191 mm do 65 535 mm.
- Wywołania funkcji Depth API
ArFrame_acquireDepthImage
iArFrame_acquireRawDepthImage
zostały wycofane. Zamiast nich używaj interfejsówArFrame_acquireDepthImage16Bits
iArFrame_acquireRawDepthImage16Bits
.
- Wywołania funkcji Depth API uległy zmianie:
Unity (AR Foundation)
Nowe interfejsy ARCore Geospatial API:
AREarthManager
umożliwia lokalizację za pomocą współrzędnych względnych względem Ziemi.EarthTrackingState
pobiera stan śledzenia Ziemi dla ostatniej klatki.EarthState
utrzymuje warunki błędu w Google Earth.
GeospatialPose
określa konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.ARGeospatialAnchor
zapewnia punkt zakotwiczenia dla obiektów w scenie, określony w lokalizacji i orientacji względem Ziemi.
iOS
Nowe interfejsy ARCore Geospatial API:
GAREarth
Zapewnia lokalizację względem Ziemi.GAREarthState.earthState
zarządza stanami i warunkami błędów.GAREarthState.trackingState
utrzymuje stan śledzenia wymagany w przypadku danych geoprzestrzennych.
GARGeospatialTransform
Reprezentacja globalnego przekształcenia obejmująca lokalizację, kierunek, wysokość i szacunkową dokładność.GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
Tworzy kotwicę geoprzestrzenną w określonej lokalizacji i orientacji względem Ziemi.
Inne zmiany
Więcej informacji o innych zmianach, poprawkach błędów i usprawnieniach znajdziesz w informacjach o wersji:
- Informacje o wersjach pakietu ARCore SDK na Androida
- Informacje o wersji ARCore na Androida NDK
- Informacje o wersji pakietu ARCore SDK na iOS
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.30.0
Ta wersja nie zawiera nowych funkcji.
Android
- Wartości zwracane przez interfejs API z adnotacjami
@NonNull
i@Nullable
. - Zaktualizowano wersje narzędzi do kompilacji używanych do tworzenia próbek: Gradle do wersji 7.0.2 i wtyczkę Androida do obsługi Gradle do wersji 7.0.4. Uaktualnianie tych narzędzi nie jest wymagane w przypadku istniejących aplikacji ARCore. Informacje o nowych funkcjach, znanych problemach i niezgodnościach znajdziesz w dokumentacji Androida na temat wtyczki Androida do obsługi Gradle.
Unity (AR Foundation)
Dodano nową wersję
arcore-unity-extensions-without-edm4u.tgz
. Ta wersja nie zawiera zależności zewnętrznych, takich jak External Dependency Manager for Unity, i umożliwia uaktualnianie EDM. Korzystanie z tej uproszczonej wersji może rozwiązać problemy z niezgodnością podczas używania bibliotek Firebase. Aby rozpocząć, zapoznaj się z instrukcjami instalacji rozszerzeń ARCore dla AR Foundation.Zaktualizowano ExternalDependencyManager do wersji 1.2.168, aby lepiej obsługiwać wersje 2021.2 i nowsze. Więcej informacji znajdziesz w dzienniku zmian EDM.
Rozwiązaliśmy problem polegający na tym, że sesja ARCore była konfigurowana w każdej klatce, nawet jeśli nie było zmian w konfiguracji sesji, co powodowało spadek liczby klatek na sekundę.
iOS
- Różne poprawki błędów i ulepszenia wydajności.
Nowości w ARCore w wersji 1.29.0
Ta wersja nie zawiera nowych funkcji.
Android
- hello_ar_java i hello_ar_kotlin: zmieniono kolor obiektu po umieszczeniu go za pomocą
SCREENSPACE_WITH_APPROXIMATE_DISTANCE
, aby lepiej odróżniać obiekty umieszczone za pomocą natychmiastowego umieszczania. - persistent_cloud_anchor_java: dodano brakującą zależność kompilacji do przykładu. Naprawiliśmy błąd polegający na tym, że hostowanie dowolnego punktu zakotwiczenia miało stan
CloudAnchorState ERROR_NOT_AUTHORIZED
, nawet jeśli projekt był prawidłowo skonfigurowany.
Unity (AR Foundation)
- Pakiet ARCore Extensions zależy teraz od ARKit XR Plugin, aby mieć pewność, że zainstalowana wersja AR Foundation jest zgodna z wersją ARKit XR Plugin. Naprawia błąd kompilacji, który pojawiał się podczas instalowania rozszerzeń ARCore w Unity 2019.x i włączania wtyczki ARKit XR.
- Ustawienia projektu ARCore Extensions zostały przeniesione z Project Settings > XR > ARCore Extensions do Project Settings > XR Plug-in Management > ARCore Extensions.
ARCoreExtensionsConfig
,ARCoreExtensionsCameraConfigFilter
,ARCoreRecordingConfig
zostały przeniesione z menu Utwórz > XR > Rozszerzenia ARCore do menu Utwórz > XR.
iOS
- Różne poprawki błędów i ulepszenia wydajności.
Pełne informacje o wersji
- Pełne informacje o wersji pakietu 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 dla AR Foundation
Nowości w ARCore w wersji 1.28.0
- Od listopada 2022 r. aplikacje obsługujące AR nie będą już mogły uzyskiwać obrazów NDK ani metadanych obrazów. Wersje pakietu SDK, których dotyczy wycofanie, zależą od konkretnej wywoływanej funkcji. Więcej informacji znajdziesz w ogłoszeniu o wycofaniu.
- C: wywołania funkcji
ArImage_getNdkImage()
iArImage_getNdkCameraMetadata()
zawsze zwracają wartośćnullptr
w przypadku obiektówAImage
iACameraMetadata
. - Java: obiekt
Image
zwracany przezFrame#acquireCameraImage()
będzie miał rozmiar0
x0
pikseli. Wywołania funkcjiFrame#getImageMetadata()
zawsze będą zwracać wartośćIllegalArgumentException
. - Unity (AR Foundation): gdy używasz AR Foundation 2.1 (Unity 2019 LTS), wywołania
XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
zawsze zwracająfalse
. W przypadku AR Foundation w wersji 4.x i nowszych problem nie występuje, a wywołania funkcjiXRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
będą działać prawidłowo. - Pakiet SDK ARCore dla Unity (wycofany): wywołania
Frame.CameraImage.AcquireCameraImageBytes()
będą miały rozmiar0
×0
pikseli. WywołaniaFrame.CameraMetadata.GetAllCameraMetadataTags()
zwrócą pustą wartośćList<CameraMetadataTag>
.
- C: wywołania funkcji
- Java:
ArImage#getCropRect()
zwraca teraz prostokąt wycięcia w pełnym rozmiarze, czyli wszystkie piksele w obiekcie Image są prawidłowe. Więcej informacji znajdziesz w sekcjiandroid.media.Image#getCropRect()
.
Nowości w ARCore w wersji 1.27.0
Ta wersja nie zawiera nowych funkcji. W informacjach o wersji znajdziesz różne poprawki błędów i usprawnienia.
- Pełne informacje o wersji pakietu 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 dla AR Foundation
Oprócz różnych poprawek błędów ta wersja zawierała te zmiany:
Przykładowe aplikacje w języku Kotlin
Dodaliśmy przykład hello_ar_kotlin, aby pokazać sprawdzone metody korzystania z języka Kotlin.
Więcej informacji znajdziesz w krótkim wprowadzeniu do Androida.
Dodano 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 uczenia maszynowego.
Nowości w ARCore w wersji 1.26.0
W tej wersji wprowadziliśmy 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
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
- Pełne informacje o wersji pakietu 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 dla AR Foundation
Nowości w ARCore w wersji 1.25.0
Ta wersja nie zawiera nowych funkcji. W informacjach o wersji znajdziesz różne poprawki błędów i usprawnienia.
- Pełne informacje o wersji pakietu 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 ARCore SDK na Unity
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.24.0
W tej wersji wprowadziliśmy następujące ważne zmiany:
- Nowy interfejs Raw Depth API, który udostępnia obraz głębi bez filtrowania w przestrzeni obrazu.
- Możliwość nagrywania niestandardowych ścieżek danych w interfejsie Recording & Playback API
- Możliwość przeprowadzania testów głębi
Surowa głębia
Interfejs Raw Depth API udostępnia dane o głębi obrazu z kamery, które są dokładniejsze niż dane z interfejsu Full Depth API, ale nie zawsze obejmują wszystkie piksele. Obrazy głębi w formacie RAW wraz z odpowiadającymi im obrazami pewności można też dalej przetwarzać, co pozwala aplikacjom używać tylko tych danych o głębi, które są wystarczająco dokładne w danym przypadku użycia.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Android NDK (C)
- Rozszerzenia ARCore dla AR Foundation
- Pakiet ARCore SDK na Unity
Nagrywanie ścieżki niestandardowej
Nowa funkcja ścieżki danych niestandardowych w interfejsie Recording & Playback API umożliwia dodawanie danych niestandardowych do klatki ARCore podczas nagrywania i pobieranie tych samych danych z klatki podczas odtwarzania.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Android NDK (C)
- Rozszerzenia ARCore dla AR Foundation
- Pakiet ARCore SDK na Unity
Testy interakcji z głębokością
Wcześniej testy trafienia można było przeprowadzać tylko na wykrytych płaszczyznach, co ograniczało lokalizacje do dużych, płaskich powierzchni. Testy trafień głębi wykorzystują zarówno wygładzone, jak i surowe informacje o głębi, aby zapewnić dokładniejsze wyniki trafień, nawet na powierzchniach niepłaskich i o niskiej teksturze.
Przewodniki dla programistów:
Dodatkowe zmiany i aktualizacje
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
- Pełne informacje o wersji pakietu 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 ARCore SDK na Unity
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.23.0
Oczekiwanie na obsługę podwójnego aparatu
Obsługa podwójnego aparatu zostanie wprowadzona w najbliższych tygodniach. Więcej informacji znajdziesz na stronie obsługiwane urządzenia.
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
Hostowanie i rozwiązywanie kotwic w chmurze
Aplikacje obsługujące AR utworzone przy użyciu pakietu ARCore SDK w wersji 1.11.0 lub starszej nie mogą już hostować ani rozwiązywać kotwic w chmurze.
C: Zakotwiczenia w chmurze zwracane przez funkcje
ArSession_hostAndAcquireNewCloudAnchor
iArSession_resolveAndAcquireNewCloudAnchor
zawsze mają stanAR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL
.Java: zakotwiczenia w chmurze zwracane przez
Session.hostCloudAnchor(Anchor)
iSession.resolveCloudAnchor(String)
zawsze będą miały stanAnchor.CloudAnchorState.ERROR_INTERNAL
.Unity: kotwice w chmurze zwracane przez funkcje
XPSession.CreateCloudAnchor(Anchor)
iXPSession.ResolveCloudAnchor(string)
zawsze mają stanCloudServiceResponse.ErrorInternal
.
Nie ma to wpływu na aplikacje utworzone za pomocą pakietu ARCore SDK w wersji 1.12.0 lub nowszej. Korzystanie z interfejsu ARCore Cloud Anchor API podlega zasadom wycofywania.
Dodatkowe zmiany i aktualizacje
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
Nowości w ARCore w wersji 1.22.0
W tej wersji dodaliśmy nowe interfejsy API nagrywania i odtwarzania oraz interfejsy API filtra konfiguracji aparatu dla rozszerzeń ARCore w AR Foundation. Szczegółowe informacje znajdziesz w pełnej liście zmian w ARCore Extensions.
Dodatkowe zmiany i aktualizacje
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
Nowości w ARCore w wersji 1.21.0
Ta wersja zawiera nowe interfejsy API nagrywania i odtwarzania dla Android, Androida NDK i Unity.
Nagrywanie i odtwarzanie
Za pomocą interfejsów Recording API i Playback API możesz nagrać wideo i dane AR w danym środowisku, a następnie użyć tych treści do zastąpienia sesji z kamery na żywo na potrzeby testów. ARCore zapisuje nagrane sesje w plikach MP4, które zawierają wiele ścieżek wideo i inne dane na urządzeniu. Następnie możesz skonfigurować aplikację tak, aby korzystała z tych danych zamiast z sesji kamery na żywo. Dzięki temu możesz odtwarzać te treści w nieskończoność, aby wypróbować różne efekty AR bez konieczności powrotu w teren.
Szczegółowe informacje:
Java:
C:
Unity:
Nowości w ARCore w wersji 1.20.0
W tej wersji wprowadziliśmy następujące ważne zmiany:
Nowa obsługa trwałych kotwic w chmurze.
Zaktualizowane funkcje metadanych obrazu na Androidzie i Androidzie NDK.
Nowe wskazówki wymagające Gradle w wersji 5.6.4 lub nowszej, aby obsługiwać rozszerzenia ARCore dla AR Foundation lub pakiet SDK ARCore dla Unity (w wersji 1.19 lub nowszej) z Unity w wersji 2018.4 lub nowszej.
Nowa obsługa trwałych kotwic w chmurze
Przed wersją ARCore 1.20 kotwice w chmurze można było rozwiązywać tylko przez 24 godziny od pierwszego hostowania. Dzięki trwałym kotwicam w chmurze możesz teraz tworzyć kotwice w chmurze z czasem życia (TTL) od 1 do 365 dni. Możesz też przedłużyć okres istnienia kotwicy po jej hostowaniu za pomocą interfejsu Cloud Anchor Management API.
Korzystanie z trwałych kotwic w chmurze podlega nowym zasadom wycofywania kotwic w chmurze.
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 na Androida, przewodnik dla programistów na iOS,
ARAnchorManager.HostCloudAnchor(ARAnchor, int)
,ARAnchorManager.SetAuthToken(string)
iARAnchorManager.EstimateFeatureMapQualityForHosting(Pose)
.Określanie kierowania w Unity na Androida: przewodnik dla deweloperów,
XPSession.CreateCloudAnchor(Anchor, int)
iXPSession.EstimateFeatureMapQualityForHosting(Pose)
.Kierowanie na iOS w Unity: przewodnik dla programistów,
XPSession.SetAuthToken(string)
iXPSession.CreateCloudAnchor(UnityARUserAnchorComponent, int)
.
Dodatkowe zmiany i aktualizacje
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
Nowości w ARCore w wersji 1.19.0
W tej wersji wprowadziliśmy następujące ważne zmiany:
- Nowy interfejs Instant Placement API na Android, Androida NDK i Unity.
- Nowe wskazówki dotyczące tworzenia aplikacji na Androida 11 za pomocą Unity.
Natychmiastowe umieszczanie
Interfejs Instant Placement API umożliwia użytkownikowi umieszczenie obiektu AR na ekranie bez konieczności czekania, aż ARCore wykryje geometrię powierzchni. Umieszczenie obiektu jest dopracowywane w czasie rzeczywistym, gdy użytkownik porusza się po otoczeniu. Gdy ARCore wykryje prawidłową pozycję w regionie, w którym umieszczony jest obiekt AR, biały obiekt automatycznie zaktualizuje się, aby odzwierciedlać pozycję, i stanie się nieprzezroczysty.
Poniższy klip przedstawia wirtualną figurkę Androida na prawdziwym stole. Po pierwszym umieszczeniu jest biała i znacznie mniejsza. Gdy ARCore dopracuje obliczenia wymiarów sceny, postać przeskoczy w bardziej precyzyjne miejsce. Może to spowodować różnicę w postrzeganej „wielkości” obiektu.
Szczegółowe informacje:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore w wersji 1.18.0
W tej wersji wprowadziliśmy następujące ważne zmiany:
- Nowy interfejs Depth API na Android, Android NDK i Unity.
- Nowe wskazówki dotyczące tworzenia komponentów rozszerzonej rzeczywistości i importowania ich do Androida Studio.
- Interfejs Depth API będzie obsługiwany w
4.1.0-preview.2
zarówno w przypadkuAR Foundation
, jak iARCore XR Plugin
.
Depth API
Na urządzeniach obsługujących głębię interfejs Depth API używa kamery RGB urządzenia obsługującego ARCore lub aktywnego czujnika głębi (jeśli jest dostępny) do tworzenia map głębi. Możesz wtedy użyć głębi poszczególnych pikseli podanej przez mapę głębi, aby wirtualne obiekty były wyświetlane przed obiektami z rzeczywistego świata lub za nimi, co zapewnia wciągające i realistyczne wrażenia.
Na przykład na tych obrazach widać wirtualną figurkę Androida w rzeczywistym pomieszczeniu z szafą obok drzwi. Interfejs Depth API prawidłowo zasłania postać za krawędzią pnia.
Szczegółowe informacje:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore w wersji 1.17.0
Najważniejsze informacje o pakiecie ARCore SDK na Androida
Dodaliśmy nowe metody, które umożliwiają buforowanie wielu klatek z kamery. Wraz z innymi technikami, takimi jak renderowanie wielowątkowe, można jej używać do zmniejszania zmienności liczby klatek na sekundę.
Dodano brakujące użycie czujnika głębi i funkcje pobierające docelową liczbę klatek na sekundę:
Zapoznaj się też z pełnymi informacjami o wersji pakietu SDK na Androida.
Najważniejsze informacje o pakiecie ARCore SDK dla Unity
- Dodano obsługę renderowania wielowątkowego w Unity w wersji 2018.2 lub nowszej, co w większości przypadków zwiększy wydajność i może pomóc zmniejszyć zmienność liczby klatek na sekundę. Jest to ustawienie projektu Unity, które znajdziesz w sekcji Ustawienia projektu > Odtwarzacz > Android > Inne ustawienia > Renderowanie wielowątkowe. Szczegółowe informacje znajdziesz w przewodniku dla programistów.
- Dodano kody
SessionStatus.ErrorCameraNotAvailable
iSessionStatus.ErrorIllegalState
, aby wskazywać konkretne stany błędów sesji ARCore.
Zapoznaj się też z pełną listą zmian w pakiecie ARCore SDK dla Unity.
Najważniejsze informacje o pakiecie ARCore SDK na iOS
Rozmiar binarny pakietu Cloud Anchors SDK znacznie się zmniejszył.
Bitcode jest teraz obsługiwany w przypadku rozszerzonych twarzy.
Zapoznaj się też z pełnymi informacjami o wersji pakietu ARCore SDK na iOS.
Nowości w ARCore w wersji 1.16.0
Ważne w ARCore SDK na Androida i Sceneform SDK na Androida
W tej wersji wprowadziliśmy następujące ważne zmiany:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje aparatu o niższych rozdzielczościach tekstur GPU niż domyślna rozdzielczość tekstur GPU urządzenia.
Więcej informacji znajdziesz w sekcji Urządzenia obsługujące ARCore.
Te rozszerzone rozdzielczości procesora graficznego są dostępne w interfejsie
getSupportedCameraConfigs(CameraConfigFilter)
API.
Zobacz także:
Ważne informacje o rozszerzeniach ARCore dla AR Foundation
W tej wersji wprowadziliśmy następujące ważne zmiany:
XRCameraConfiguration
AR Foundation jest rozszerzone o metody, które umożliwiają wybór odpowiedniej konfiguracji kamery na podstawie wybranych kryteriów. Obejmują one metody GetTextureDimensions(), GetFPSRange() i GetDepthSensorUsages(). Szczegółowe instrukcjeUnity 2019.3.0f6 to teraz minimalna zalecana wersja rozszerzeń ARCore. AR Foundation 3.1.0-preview.6 wymaga Unity w wersji 2019.3 lub nowszej.
Unity używa teraz terminów Anchor, Cloud Anchor i Cloud Anchor ID w swoim wieloplatformowym interfejsie API AR. Dokumentacja rozszerzeń ARCore została zaktualizowana, aby uwzględnić tę zmianę.
Zobacz także:
Najważniejsze informacje o pakiecie ARCore SDK dla Unity
W tej wersji wprowadziliśmy następującą ważną zmianę:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje aparatu o niższych rozdzielczościach tekstur GPU niż domyślna rozdzielczość tekstur GPU urządzenia. (Szczegółowe informacje znajdziesz w sekcji Urządzenia obsługujące ARCore). Te rozszerzone rozdzielczości GPU są dostępne w interfejsie ARCoreCameraConfigFilter API.
Zobacz także:
Pełne informacje o wersji pakietu ARCore SDK na Unity
Nowości w ARCore w wersji 1.15.0
Ważne informacje o rozszerzeniach ARCore dla AR Foundation
W tej wersji wprowadziliśmy następujące ważne zmiany.
Dodano przykład CloudAnchors pokazujący, jak tworzyć wspólne środowiska AR na urządzenia z Androidem i iOS. Zobacz instrukcje dla Android lub iOS.
Unity 2019.2.17f1 to teraz minimalna zalecana wersja do używania z ARCore Extensions.
Pełne informacje o wersji rozszerzeń ARCore
Najważniejsze informacje o pakiecie ARCore SDK dla Unity
W tej wersji występują te znane problemy.
Podgląd natychmiastowy może zawieszać Unity, gdy używasz Androida 9 i kabla USB 3. Aby rozwiązać ten problem, zaktualizuj Androida do wersji 10 lub użyj kabla USB 2.
Natychmiastowy podgląd może się nie wyświetlać na urządzeniu, jeśli rozdzielczość widoku gry w Unity jest zbyt wysoka. Aby to naprawić, obniż rozdzielczość widoku gry w Unity w Edytorze.
Pełne informacje o wersji pakietu ARCore SDK na Unity
Dodatkowe zmiany
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
Nowości w ARCore w wersji 1.14.0
W tej wersji wprowadziliśmy następujące ważne zmiany.
Gdy aplikacja tymczasowo traci dostęp do aparatu na rzecz innej aplikacji na urządzeniu, przyczyna niepowodzenia śledzenia jest teraz bardziej szczegółowa:
Android:
TrackingFailureReason
zamiastNONE
jestCAMERA_UNAVAILABLE
.Android NDK:
ArTrackingFailureReasons
toAR_TRACKING_FAILURE_REASON_CAMERA_UNAVAILABLE
zamiastAR_TRACKING_FAILURE_REASON_NONE
.Unity:
Session.LostTrackingReason
toLostTrackingReason.CameraUnavailable
zamiastNone
.
Google gromadzi i przetwarza dane związane z korzystaniem przez Ciebie z pakietu ARCore Extensions zgodnie z Polityką prywatności Google i Warunkami korzystania z interfejsów API Google. Możesz z tego zrezygnować.
Nowości w ARCore w wersji 1.13.0
W tej wersji wprowadziliśmy następujące ważne zmiany.
Obsługa korzystania z rozszerzeń ARCore dla AR Foundation w Unity do tworzenia aplikacji na iOS z kotwicami w chmurze.
Więcej informacji o poprawkach błędów i innych zmianach powodujących niezgodność znajdziesz w tych informacjach o wersji.
Nowości w ARCore w wersji 1.12.0
W tej wersji wprowadziliśmy następujące zmiany:
Dodanie funkcji Rozszerzone twarze na iOS. Więcej informacji znajdziesz w tym omówieniu, krótkim wprowadzeniu i przewodniku dla deweloperów.
Obsługa korzystania z rozszerzeń ARCore dla AR Foundation w Unity do tworzenia aplikacji na Androida z kotwicami w chmurze.
Zmiany w zakotwiczeniach w chmurze:
- Aby zachować zgodność z naszymi zaktualizowanymi wymaganiami dotyczącymi prywatności w przypadku korzystania z pakietów SDK ARCore w wersji 1.12 lub nowszej, musisz w widocznym miejscu w aplikacji poinformować użytkowników o korzystaniu z kotwic w chmurze. W tym celu na ekranie powiadomienia umieść ten tekst oraz link do dodatkowych informacji: „Aby umożliwić działanie tej sesji, Google będzie przetwarzać dane wizualne z Twojego aparatu”. Możesz to zrobić, wdrażając zalecany proces powiadamiania użytkowników dostępny w naszych przykładowych aplikacjach z kotwicami w chmurze.
Więcej informacji znajdziesz w wymaganiach dotyczących prywatności użytkowników.
Więcej informacji o kotwicach w Cloud Anchors:
Urządzenia z Androidem:
Android NDK:
Urządzenia z iOS:
Unity:
Rozszerzenia ARCore:
Nowości w ARCore w wersji 1.11.0
W tej wersji wprowadziliśmy następujące zmiany:
Usługa ARCore zmieniła nazwę na Usługi Google Play dla AR. Na urządzeniach z Google Play jest teraz rozpowszechniana w ramach Usług Google Play.
Konfiguracje aparatu ARCore są dostosowane do 60 klatek na sekundę na obsługiwanych urządzeniach i priorytetowo wykorzystują czujnik głębi na urządzeniach, które go mają. Możesz użyć nowych filtrów konfiguracji aparatu, aby ograniczyć liczbę klatek na sekundę do 30, uniemożliwić ARCore korzystanie z czujnika głębi lub filtrować na podstawie obu tych opcji.
Więcej informacji o konfiguracjach kamery:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore w wersji 1.10.0
Ta wersja dodaje nowe możliwości oceny oświetlenia środowiskowego HDR do interfejsu Lighting Estimation API na Androida, Androida NDK i Unity.
Te interfejsy API wykorzystują uczenie maszynowe do analizowania obrazu z kamery wejściowej i szacowania oświetlenia otoczenia. Możesz użyć tych danych do renderowania niezwykle realistycznego oświetlenia, w tym głównego światła kierunkowego, cieni, oświetlenia otoczenia, odblasków i odbicia na wirtualnych obiektach. Dzięki temu wirtualne treści są bardziej realistyczne.
Szczegółowe informacje:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore w wersji 1.9.0
Nowości w pakiecie ARCore SDK na Androida
Ta wersja zawiera te nowe interfejsy API i funkcje:
Scene Viewer to wciągająca przeglądarka, która umożliwia korzystanie z funkcji AR w Twojej witrynie. Umożliwia użytkownikom urządzeń mobilnych z Androidem łatwe umieszczanie, wyświetlanie i interakcję z modelami 3D hostowanymi w internecie w ich otoczeniu.
Nowe funkcje obrazów rozszerzonych:
ARCore śledzi teraz ruchome obrazy rozszerzone. Przykłady ruchomych obrazów to reklama na przejeżdżającym autobusie lub obraz na płaskim obiekcie trzymanym przez użytkownika, który porusza ręką.
Po wykryciu obrazu ARCore może nadal śledzić jego położenie i orientację, nawet jeśli obraz tymczasowo zniknie z pola widzenia kamery.
Użyj
AugmentedImage#getTrackingMethod()
(Java) lubArAugmentedImage_getTrackingMethod()
(NDK), aby określić, czy obraz rozszerzony jest obecnie śledzony przez kamerę (FULL_TRACKING
), czy jest śledzony na podstawie ostatniej znanej pozycji (LAST_KNOWN_POSE
).
Dokumentacja Cloud Anchors zawiera teraz bardziej szczegółowe wyjaśnienie, jak są hostowane i rozwiązywane kotwice.
Nowości w pakiecie ARCore SDK dla Unity
Nowe funkcje obrazów rozszerzonych:
ARCore śledzi teraz ruchome obrazy rozszerzone. Przykłady ruchomych obrazów to reklama na przejeżdżającym autobusie lub obraz na płaskim obiekcie trzymanym przez użytkownika, który porusza nim w przestrzeni.
Po wykryciu obrazu ARCore może nadal śledzić jego położenie i orientację, nawet jeśli obraz tymczasowo zniknie z pola widzenia kamery.
Nowy interfejs
AugmentedImage.GetTrackingMethod()
API umożliwia aplikacji określenie, czy obraz rozszerzony jest obecnie śledzony przez kamerę (FullTracking
), czy jest śledzony na podstawie ostatniej znanej pozycji (LastKnownPose
).
Dokumentacja Cloud Anchors zawiera teraz bardziej szczegółowe wyjaśnienie, jak są hostowane i rozwiązywane kotwice.
Nowości w pakiecie ARCore SDK na iOS
Obsługa tych urządzeń:
iPad Mini 5 generacji
iPad Air 3 generacji
Dokumentacja Cloud Anchors zawiera teraz bardziej szczegółowe wyjaśnienie, jak są hostowane i rozwiązywane kotwice.