Nowe i istotne zmiany w ARCore.
Nowości w ARCore w wersji 1.48.0
W pełni udostępniono obsługę 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 for AR Foundation, użyj jednej z tych metod instalacji:
- W przypadku
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf6
, - Za pomocą
Add package from tarball...
: użyj wersji oznaczonej jakoarf6
na stronie wersji.
Aby przejść z AR Foundation 5 na AR Foundation 6, zapoznaj się z tym przewodnikiem.
Zmiany w działaniu i zachowaniu
- Pakiet SDK nie obsługuje już celów wdrożenia w przypadku wersji iOS <13.0
Nowości w ARCore w wersji 1.47.0
Obsługa wersji beta Unity 6 i AR Foundation 6
Rozszerzenia ARCore dla AR Foundation w Unity są teraz dostępne w wersji beta w AR Foundation 6, aby zapewnić obsługę Unity 6. Aby uzyskać zgodną wersję ARCore Extensions for AR Foundation, użyj jednej z tych metod instalacji:
- W przypadku
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf6
, - Za pomocą
Add package from tarball...
: użyj wersji oznaczonej jakoarf6
na stronie wersji.
Aby przejść z AR Foundation 5 na AR Foundation 6, zapoznaj się z tym przewodnikiem.
Poprawki błędów
- Rozwiązano problem z nieprzezroczystością płaszczyzny w Cloud Anchor Sample w Unity 6.
Inne zmiany
- Gałąź
main
w repozytorium GitHub Extensions ARCore została przełączona na śledzenie gałęziarf5
.
Nowości w ARCore w wersji 1.46.0
Zmiany w targetSdkVersion
pakietu ARCore SDK
Interfejs API targetSdkVersion
ARCore został zaktualizowany do poziomu 35. Jeśli Twoja aplikacja nie określa wartościtargetSdkVersion
, wartość targetSdkVersion
w niej zostanie zastąpiona wartością 35, ponieważ plik manifestu zostanie połączony.
W Unity określenie docelowego poziomu API w sekcji Ustawienia projektu > Gracz > Android > Inne ustawienia spowoduje zastąpienie wartości targetSdkVersion
w ARCore.
Nowości w ARCore w wersji 1.45.0
Interfejs API trybu błysku
ARCore obsługuje teraz włączanie trybu latarki na urządzeniu, co pozwala na lepsze wykrywanie obiektów w ciemnych miejscach.
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 wykrywanie 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 wykrywanie 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 są teraz oficjalnie obsługiwane w AR Foundation 5. Jeśli używasz AR Foundation 5 (weryfikowanej wersji w wersjach Unity 2022 i 2023), skorzystaj z tych metod instalacji, aby uzyskać zgodną wersję rozszerzeń ARCore dla AR Foundation:
- W przypadku
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf5
, - Za pomocą
Add package from tarball...
: użyj wersji oznaczonej jakoarf5
na stronie wersji.
Projekty, które pozostają w wersji 4 AR Foundation, mogą korzystać z tych metod instalacji:
- W przypadku
Add package from git url...
: użyjhttps://github.com/google-ar/arcore-unity-extensions.git#arf4
, - Za pomocą
Add package from tarball...
: użyj wersji oznaczonej jakoarf4
na stronie wersji.
Aby uaktualnić projekt z AR Foundation 4 do AR Foundation 5, zapoznaj się z przewodnikiem po migracji.
Niestandardowe symbole skryptu, 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 twórcy danych geoprzestrzennych korzysta teraz z nowego interfejsu Places API od Google. Aby korzystać z funkcji wyszukiwania, włącz interfejs Places API (nowy) w Google Cloud Console.
Nowości w ARCore w wersji 1.42.0
Dopasowywanie do płytki w Geospatial Creator dla Unity
Do panelu ARGeospatialCreatorAnchor
w Edytorze dodaliśmy przycisk „Dopasuj do krawędzi”. Ten przycisk ustawia wartość wysokości osi Z (tylko dla edytującego) na wierzchołku geometrii płytki 3D w przypadku bieżącej szerokości i długości geograficznej osi. Pamiętaj, że ta właściwość nie ma wpływu na zachowanie w czasie wykonywania. Pomaga to dostosować pozycję kotwicy w edytorze, aby odpowiadała ona pozycji w czasie wykonywania.
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 są opisane w przewodniku po interfejsie Geospatial Creator API.
Obsługa wersji AR Foundation 5.x (beta)
Rozszerzenia ARCore dla AR Foundation w Unity obsługują teraz wersje AR Foundation w wersji 5.x. Aby przenieść istniejący projekt do AR Foundation, zapoznaj się z przewodnikiem po migracji.
Co nowego w ARCore w wersji 1.40.0
Scene Semantics na iOS
Interfejs Scene Semantics API jest teraz dostępny w ARCore SDK na iOS oraz w rozszerzeniach ARCore dla AR Foundation w Unity na platformę iOS. Interfejs API semantyki sceny umożliwia deweloperom zrozumienie sceny otaczającej użytkownika w czasie rzeczywistym i oznaczanie pikseli 11 klasami komponentów na zewnątrz. Więcej informacji znajdziesz w artykule Wprowadzenie do semantyki sceny.
iOS
Unity (AR Foundation)
Wyszukiwanie punktów zainteresowania w Geospatial Creator dla Unity
Geospatial Creator for Unity obsługuje teraz wyszukiwanie tekstowe, aby ustawić widok płytek 3D w trybie fotograficznym. Więcej informacji znajdziesz w artykule Wyszukiwanie punktów zainteresowania w usłudze 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 zapewnia więcej szczegółów na temat sceny otoczenia, co ułatwia zrozumienie świata wokół użytkownika. Funkcja Semanticzna analiza sceny uruchamia model uczenia maszynowego na strumieniu obrazów z kamery i przekazuje obraz semantyczny, w którym każdy piksel odpowiada jednej z 11 etykietek pojęć związanych z otoczeniem zewnętrznym.
Więcej informacji znajdziesz w artykule Wprowadzenie do semantyki sceny i w przykładowej aplikacji semantics_java.
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
iOS
Geometria ulicy
Streetscape Geometry to nowy interfejs ARCore Geospatial API, który udostępnia geometrię budynków i terenu na obszarze wokół użytkownika, gdy interfejs Geospatial API jest włączony.
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ędniała geometrię Streetscape.
Android NDK (C)
Więcej informacji znajdziesz w przewodniku dla programistów dotyczącym geometrii Streetscape (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ędniała geometrię Streetscape.
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
zawiera siatki 3D.GARStreetscapeGeometry.meshTransform
pozwala na przekształcenie 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ślonym miejscu i kierunku.GARSession.raycastStreetscapeGeometry:direction:error:
wykonuje rzutowanie promieniowe na geometrię Streetscape załadowaną w scenie.
Zakotwiczenia na dachu
Punkty odniesienia na dachu to nowy typ punktów odniesienia geoprzestrzennego, który pomaga umieszczać treści na dachu.
Android (Kotlin/Java)
Zobacz punkty kotwiczenia geoprzestrzennego (Java). Dodatkowo zaktualizowaliśmy przykładową aplikację geospatial_java, aby uwzględniała punkty kotwiczenia na dachu.
Android NDK (C)
Więcej informacji znajdziesz w sekcji Geolokalizacja (C).
Unity (AR Foundation)
Więcej informacji znajdziesz w artykule Geolokalizowane punkty odniesienia. Dodatkowo zaktualizowaliśmy przykładowe dane geoprzestrzenne, aby obejmowały one punkty odniesienia na dachu.
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
służy do zakotwiczenia obiektów w scenie w określonej szerokości geograficznej, długości geograficznej, wysokości nad dachem i orientacji.ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
iOS
Więcej informacji znajdziesz w artykule Geolokalizowane punkty odniesienia (iOS). Dodatkowo aplikacja GeospatialExample została zaktualizowana, aby uwzględnić punkty kotwiczenia na dachu.
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
tworzy kotwicę na dachu w określonym miejscu, na wysokości nad dachem w metrach i z orientacją względem Ziemi.GARCreateAnchorOnRooftopFuture
przechowuje stan asynchronicznego rozwiązywania kotwicy na dachu.GARRooftopAnchorState
opisuje stan rozwiązywania kotwicy dachowej.
Głębokość danych geoprzestrzennych
Gdy w sesji ARCore w obszarach objętych usługą VPS są włączone zarówno interfejs Depth API, jak i Geometry Streetscape, generowane obrazy głębi są ulepszane za pomocą geometrii Streetscape. Geometria ulicy jest zintegrowana z każdym wygenerowanym obrazem głębi w zakresie 65,535 metra. Aby skorzystać z tej funkcji, nie musisz wprowadzać żadnych zmian w wywołaniu interfejsu Depth API.
Android (Kotlin/Java)
Więcej informacji znajdziesz w artykule Geospatial Depth (Java).
Android NDK (C)
Aby dowiedzieć się więcej, zapoznaj się z parametrem Geospatial Depth (C).
Unity (AR Foundation)
Aby dowiedzieć się więcej, zapoznaj się z parametrem Geospatial Depth (C).
iOS
Semantyka sceny jest obecnie niedostępna na urządzeniach z iOS.
Obsługa renderowania Vulkan
ARCore obsługuje teraz renderowanie Vulkan, udostępniając obraz z kamery za pomocą AHardwareBuffer
. Możesz używać tego bufora sprzętowego, powiązanego z VkImage
.
Więcej informacji znajdziesz w artykule Renderowanie aplikacji ARCore za pomocą Vulkan oraz w pliku przykładowej aplikacji hello_ar_vulkan_c.
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Renderowanie Vulkan jest obecnie niedostępne w Unity korzystającym z AR Foundation.
Elektroniczna stabilizacja obrazu (EIS)
Możesz skonfigurować ARCore tak, aby używać elektronicznej stabilizacji obrazu, która wygładza klatki aparatu, zapewniając płynniejsze działanie.
Więcej informacji znajdziesz w artykule Włączanie elektronicznej stabilizacji obrazu i w przykładowej aplikacji hello_eis_kotlin.
Android (Kotlin/Java)
Config.ImageStabilizationMode
Frame.transformCoordinates3d()
Session.isImageStabilizationModeSupported()
- Występuje znany problem, w którym wywołanie funkcji
Frame.transformCoordinates3d()
z współrzędnymi 2D innymi niżOPENGL_NORMALIZED_DEVICE_COORDINATES
powoduje awarię zamiast rzutowaniaIllegalArgumentException
. Ten problem zostanie rozwiązany w kolejnych wersjach.
Android NDK (C)
ArImageStabilizationMode
ArFrame_transformCoordinates3d()
ArSession_isImageStabilizationModeSupported()
- Występuje znany problem, który powoduje, że wywołanie funkcji
ArFrame_transformCoordinates3d()
z współrzędnymi 2D innymi niżAR_COORDINATES_2D_OPENGL_NORMALIZED_DEVICE_COORDINATES
powoduje przerwanie aplikacji zamiast zwrócenia wartościAR_ERROR_INVALID_ARGUMENT
. Ten problem zostanie rozwiązany w kolejnych wersjach.
Unity (AR Foundation)
EIS nie jest obecnie dostępny w Unity z wykorzystaniem AR Foundation.
iOS
Obecnie nie jest on dostępny na urządzeniach z iOS.
asynchroniczne interfejsy ARCore
W tej wersji wprowadzamy nowe asynchroniczne interfejsy ARCore, które mają poprawić ergonomię podczas pracy z operacjami asynchronicznymi zgodnie z paradygmatem Future i Promise.
Android (Kotlin/Java)
- Rozwiązywanie punktów kotwiczenia terenu: użyj elementu
Earth.resolveAnchorOnTerrainAsync()
, aby uzyskać elementResolveAnchorOnTerrainFuture
. Stary symbolEarth.resolveAnchorOnTerrain()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w Cloud: 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 adresu
ArCoreApk.checkAvailabilityAsync()
, aby zarejestrować się na rozmowę z połączeniem zwrotnym. Stary symbolArCoreApk.checkAvailability()
nie został wycofany.
Android NDK (C)
- Rozwiązywanie kotwic 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 Cloud: 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. - Hosting kotwic Google: 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 adresu
ArCoreApk_checkAvailabilityAsync()
, aby zarejestrować się na rozmowę z połączeniem zwrotnym. Stary symbolArCoreApk_checkAvailability()
nie został wycofany.
Unity (AR Foundation)
- Rozwiązywanie punktów kotwiczenia terenu: użyj elementu
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
, aby uzyskać elementResolveAnchorOnTerrainPromise
. Stary symbolARAnchorManagerExtensions.ResolveAnchorOnTerrain()
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w Cloud: 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 punktów kotwiczenia terenu: użyj elementu
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
, aby uzyskać elementGARCreateAnchorOnTerrainFuture
. Stary symbolGARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
został wycofany i może zostać usunięty w późniejszej wersji ARCore. - Rozwiązywanie kotwic w Cloud: 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 w iOS
Pakiet ARCore SDK na iOS obsługuje teraz oficjalnie menedżera pakietów Swift. 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ść postawy geoprzestrzennej zastępuje kierunek z przechyleniem
Wszystkie pozycje geoprzestrzenne zawierają teraz dokładność orientacji obrotu wokół osi yaw, która zastępuje dokładność kursu.
- Java/Kotlin: zastąp
GeospatialPose.getHeading()
wartościąGeospatialPose.getEastUpSouthQuaternion()
, aGeospatialPose.getHeadingAccuracy()
wartościąGeospatialPose.getOrientationYawAccuracy()
. - C: zastąp
ArGeospatialPose_getHeading()
tekstemArGeospatialPose_getEastUpSouthQuaternion()
, aArGeospatialPose_getHeadingAccuracy()
tekstemArGeospatialPose_getOrientationYawAccuracy()
. - iOS: zastąp
GARGeospatialTransform.heading
tekstemGARGeospatialTransform.eastUpSouthQTarget
, aGARGeospatialTransform.headingAccuracy
tekstemGARGeospatialTransform.orientationYawAccuracy
. - Unity: zamień
GeospatialPose.Heading
naGeospatialPose.EunRotation
, aGeospatialPose.HeadingAccuracy
naGeospatialPose.OrientationYawAccuracy
.
Dodatkowe zmiany i aktualizacje
Inne zmiany, poprawki błędów i usprawnienia znajdziesz w sekcji z informacjami o wersji:
- Informacje o wersji pakietu ARCore SDK na Androida
- Informacje o wersji ARCore dla NDK na Androida
- Pakiet ARCore SDK na iOS – informacje o wersji
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.34.0
Sprawdź, czy funkcje geoprzestrzenne są dostępne w bieżącej lokalizacji urządzenia
Interfejs Geospatial API może teraz sprawdzać dostępność systemu wizualnego pozycjonowania (VPS) w określonej pozycji poziomej w czasie działania. Z tego interfejsu API można korzystać bez aktywnej sesji AR, na przykład aby wyświetlić przycisk „Wejdź do AR” tylko wtedy, gdy usługa VPS jest dostępna.
- Java/Kotlin:
Session.checkVpsAvailabilityAsync()
- C:
ArSession_checkVpsAvailabilityAsync()
- iOS:
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Unity (AR Foundation):
AREarthManager.CheckVpsAvailability()
Orientacja pozy geoprzestrzennej
Pozy geoprzestrzenne są teraz wyświetlane z orientacją w przestrzeni 3D.
- Java/Kotlin:
feedbackGeospatialPose.getEastUpSouthQuaternion()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARGeospatialTransform.eastUpSouthQTarget
- Unity:
GeospatialPose.EunRotation()
Konwersje na podstawie danych geoprzestrzennych
Pozy geoprzestrzenne można teraz konwertować na pozy 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 z tych funkcji mają wartość kierunku ustawioną na 0. Zamiast tego użyj:
- Android (Java/Kotlin/C): kwadrant EUS postawy
- iOS:
eastUpSouthQTarget
pozy - Unity: postawa
EunRotation
Dodatkowe zmiany i aktualizacje
Inne zmiany, poprawki błędów i usprawnienia znajdziesz w sekcji z informacjami o wersji:
- Informacje o wersji pakietu ARCore SDK na Androida
- Informacje o wersji ARCore dla NDK na Androida
- Pakiet ARCore SDK na iOS – informacje o wersji
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.33.0
Nowy punkt końcowy Cloud Anchors
- Aby używać punktów styczności w chmurze, musisz teraz włączyć interfejs ARCore API zamiast starszego interfejsu ARCore Cloud Anchor API, który jest teraz wycofany. Aby zapewnić obsługę starszych wersji aplikacji, możesz włączyć obie podczas przejścia. 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 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 back-endu, po włączeniu interfejsu ARCore API musisz też zmienić nazwę domeny na
arcore.googleapis.com
. - Stary interfejs API/punkt końcowy będzie obsługiwany do sierpnia 2023 r.
- Więcej informacji znajdziesz w artykule o zmianach w punkcie końcowym Cloud Anchor w wersji ARCore 1.33.
- Nowy interfejs API używa nazwy domeny
Kotwicy terenu
- Interfejs Geospatial Terrain anchor API tworzy kotwicę w określonym położeniu poziomym i na określonej wysokości względem terenu.
Dodatkowe zmiany i aktualizacje
Inne zmiany, poprawki błędów i usprawnienia znajdziesz w sekcji z informacjami o wersji:
- Informacje o wersji pakietu ARCore SDK na Androida
- Informacje o wersji ARCore dla NDK na Androida
- Pakiet ARCore SDK na iOS – informacje o wersji
- 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
targetSdkVersion
ARCore zostało zaktualizowane do poziomu interfejsu API 32 Androida. Jeśli Twoja aplikacja nie określa wartościtargetSdkVersion
, wartośćtargetSdkVersion
zostanie zmieniona na 32 z powodu zlania się pliku manifestu.- Pakiet SDK Androida: określenie wartości
targetSdkVersion
w plikubuild.gradle
lubAndroidManifest.xml
w projekcie zastąpi wartośćtargetSdkVersion
w ARCore. - AR Foundation na Androida: określenie docelowego poziomu interfejsu API w sekcji Ustawienia projektu > Gracz > Android > Inne ustawienia w projekcie Unity zastąpi wartość
targetSdkVersion
w ARCore.
- Pakiet SDK Androida: określenie wartości
Dodatkowe zmiany i aktualizacje
Inne zmiany, poprawki błędów i usprawnienia znajdziesz w sekcji z informacjami o wersji:
- Informacje o wersji pakietu ARCore SDK na Androida
- Informacje o wersji ARCore dla NDK na Androida
- Pakiet ARCore SDK na iOS – informacje o wersji
- 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 oraz dane obrazowe Street View z Map Google, aby umożliwić Twojej aplikacji tworzenie wciągających, globalnych doświadczeń rzeczywistości rozszerzonej opartej na lokalizacji.
Aby zapoznać się z dokumentacją dla programistów dotyczącą konkretnej platformy i zacząć korzystać z nowego interfejsu Geospatial API, przeczytaj artykuł Wprowadzenie do interfejsu Geospatial API ARCore.
Głębokość na duże odległości
Interfejs ARCore Depth API został zoptymalizowany pod kątem wykrywania głębi na większym obszarze, co zwiększa zakres obserwacji głębi. Używane są wszystkie 16 bitów obrazu głębi, co zapewnia maksymalny zakres 65 535 mm. Wcześniej wypełniane były tylko 13-bitowe wartości, z ograniczeniem do 8191 mm.
Aby poznać zmiany w interfejsie Depth API i zapoznać się z dokumentacją dla programistów dotyczącą poszczególnych platform, przeczytaj artykuł Zmiany w Depth.
Uwagi dotyczące poszczególnych platform
Android
Nowe interfejsy ARCore Geospatial API
Java
Earth
zapewnia możliwość lokalizacji w układzie współrzędnych Ziemi.Earth.createAnchor()
tworzy nowy obiektAnchor
w określonym miejscu i orientacji względem Ziemi.
Earth.Earthstate
opisuje bieżący stanEarth
, w tymTrackingState
.GeospatialPose
opisuje konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.
C
ArEarth
umożliwia lokalizację w układzie współrzędnych Ziemi.ArEarth_acquireNewAnchor()
tworzy nowy obiektAnchor
w określonym miejscu i orientacji względem Ziemi.ArEarthState
opisuje bieżący stanArEarth
, w tymArTrackingState
.
ArGeospatialPose
opisuje konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.
Zaktualizowane interfejsy API ARCore Depth
Java
- Zmieniliśmy wywołania funkcji Depth API:
Frame.acquireDepthImage
użytkownikowiFrame.acquireDepthImage16Bits
.Frame.acquireRawDepthImage
użytkownikowiFrame.acquireRawDepthImage16Bits
.- Formaty wyjściowe obrazów w obu wywołaniach zostały zmienione 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 do jej reprezentowania używane są wszystkie 16 bitów, co pozwala na maksymalny zakres wyrażania od 8191 mm do 65535 mm.
- Funkcje wywołujące Depth API
Frame.acquireDepthImage
iFrame.acquireRawDepthImage
zostały wycofane. Zamiast niej użyj pólFrame.acquireDepthImage16Bits
iFrame.acquireRawDepthImage16Bits
.
- Zmieniliśmy wywołania funkcji Depth API:
C
- Zmieniliśmy wywołania funkcji Depth API:
ArFrame_acquireDepthImage
użytkownikowiArFrame_acquireDepthImage16Bits
.- Od
ArFrame_acquireRawDepthImage
doArFrame_acquireRawDepthImage16Bits
- Formaty wyjściowe obrazów w obu wywołaniach zostały zmienione 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 do jej reprezentowania używane są wszystkie 16 bitów, co pozwala na maksymalny zakres wyrażania od 8191 mm do 65535 mm.
- Funkcje wywołujące Depth API
ArFrame_acquireDepthImage
iArFrame_acquireRawDepthImage
zostały wycofane. Zamiast niej używaj pólArFrame_acquireDepthImage16Bits
iArFrame_acquireRawDepthImage16Bits
.
- Zmieniliśmy wywołania funkcji Depth API:
Unity (AR Foundation)
Nowe interfejsy ARCore Geospatial API:
AREarthManager
umożliwia lokalizację w układzie współrzędnych Ziemi.EarthTrackingState
zwraca stan śledzenia Earth w przypadku ostatniej klatki.EarthState
zapewnia obsługę błędów w Earth.
GeospatialPose
określa konkretną lokalizację, wysokość i kierunek kompasu względem Ziemi.ARGeospatialAnchor
pozwala na zakotwiczenie obiektów w scenie, określając ich położenie i orientację względem Ziemi.
iOS
Nowe interfejsy ARCore Geospatial API:
GAREarth
Pozwala na lokalizację w powiązaniu z Earth.GAREarthState.earthState
zarządza stanami i warunkami błędu.GAREarthState.trackingState
zachowuje stan śledzenia, który jest wymagany w przypadku danych geoprzestrzennych.
GARGeospatialTransform
Reprezentacja globalnej transformacji, w tym lokalizacja, kierunek, wysokość i szacunki dokładności.GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
Tworzy punkt odniesienia geoprzestrzennego w określonym miejscu i orientacji względem Ziemi.
Inne zmiany
Inne zmiany, poprawki błędów i usprawnienia znajdziesz w sekcji z informacjami o wersji:
- Informacje o wersji pakietu ARCore SDK na Androida
- Informacje o wersji ARCore dla NDK na Androida
- Pakiet ARCore SDK na iOS – informacje o wersji
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.30
Ta wersja nie zawiera nowych funkcji.
Android
- Annotated API zwraca wartości z
@NonNull
i@Nullable
. - Zaktualizowano wersje narzędzi do kompilacji używane do kompilowania przykładów: Gradle do wersji 7.0.2, a wtyczka Androida do obsługi Gradle do wersji 7.0.4. W przypadku dotychczasowych aplikacji ARCore nie trzeba aktualizować tych narzędzi. Informacje o nowych funkcjach, znanych problemach i niezgodnościach znajdziesz w dokumentacji Androida dotyczącej wtyczki Gradle.
Unity (AR Foundation)
Dodano nową wersję
arcore-unity-extensions-without-edm4u.tgz
. Ta wersja nie zawiera zewnętrznych zależności, takich jak menedżer zewnętrznych zależności dla Unity, i umożliwia uaktualnianie do EDM. Korzystanie z tej wersji lite może rozwiązać problemy z niezgodnością podczas korzystania z bibliotek Firebase. Aby rozpocząć, zapoznaj się z instrukcjami instalacji rozszerzeń ARCore dla AR Foundation.Zaktualizowano klasę ExternalDependencyManager do wersji 1.2.168, aby lepiej obsługiwać wersję 2021.2 i nowsze. Szczegóły znajdziesz w dzienniku zmian EDM.
Rozwiązaliśmy problem polegający na tym, że sesja ARCore konfiguruje każdy kadr, nawet jeśli nie ma żadnych zmian w konfiguracji sesji, co powoduje spadek liczby klatek na sekundę.
iOS
- Poprawki błędów i usprawnienia działania aplikacji.
Nowości w ARCore w wersji 1.29.0
Ta wersja nie zawiera nowych funkcji.
Android
- hello_ar_java i hello_ar_kotlin: zmieniliśmy kolor obiektu, gdy jest on umieszczany za pomocą
SCREENSPACE_WITH_APPROXIMATE_DISTANCE
, aby lepiej odróżniać obiekty umieszczane za pomocą umieszczania natychmiastowego. - persistent_cloud_anchor_java dodano do przykładu brakujące zależności kompilacji. Naprawiliśmy błąd, który powodował, że hostowanie dowolnego kotwicy miało stan
CloudAnchorState ERROR_NOT_AUTHORIZED
, nawet jeśli projekt był prawidłowo skonfigurowany.
Unity (AR Foundation)
- Pakiet rozszerzeń ARCore jest teraz zależny od wtyczki ARKit XR, aby zainstalowana wersja AR Foundation była zgodna z wersją wtyczki ARKit XR. Naprawia to błąd kompilacji podczas instalowania rozszerzeń ARCore w Unity 2019.x i włączania wtyczki ARKit XR.
- Ustawienia projektu rozszerzeń ARCore zostały przeniesione z Ustawienia projektu > XR > Rozszerzenia ARCore do Ustawienia projektu > Zarządzanie wtyczkami XR > Rozszerzenia ARCore.
ARCoreExtensionsConfig
,ARCoreExtensionsCameraConfigFilter
iARCoreRecordingConfig
zostały przeniesione z menu Utwórz > XR > Rozszerzenia ARCore do menu Utwórz > XR.
iOS
- Poprawki błędów i usprawnienia działania aplikacji.
Kompletne informacje o wersji
- ARCore SDK na Androida – pełne informacje o wersji
- ARCore dla Androida NDK – pełne informacje o wersji
- 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 roku aplikacje obsługujące AR nie będą już mogły pobierać obrazów NDK ani metadanych obrazów. Wersje pakietu SDK, których dotyczy problem, zależą od wywoływanej funkcji. Więcej informacji znajdziesz w oświadczeniu o wycofaniu funkcji.
- C: wywołania
ArImage_getNdkImage()
iArImage_getNdkCameraMetadata()
zawsze zwracająnullptr
dla obiektówAImage
iACameraMetadata
. - Java obiekt
Image
zwracany przez metodęFrame#acquireCameraImage()
będzie miał wymiary0
x0
pikseli. Połączenia doFrame#getImageMetadata()
zawsze będą kończyły się błędemIllegalArgumentException
. - Unity (AR Foundation): gdy używasz AR Foundation 2.1 (Unity 2019 LTS), wywołania
XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
zawsze zwracająfalse
. AR Foundation w wersji 4.x i nowszych nie jest na to w żaden sposób wpływa, a wywołania funkcjiXRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
będą działać normalnie. - Pakiet ARCore SDK dla Unity (wycofany): wywołania funkcji
Frame.CameraImage.AcquireCameraImageBytes()
będą miały rozmiar0
x0
pikseli. Wywołania adresuFrame.CameraMetadata.GetAllCameraMetadataTags()
zwrócą pustą wartośćList<CameraMetadataTag>
.
- C: wywołania
- Java Więcej informacji znajdziesz w sekcji
android.media.Image#getCropRect()
.
Nowości w ARCore w wersji 1.27.0
Ta wersja nie zawiera nowych funkcji. Aby poznać różne poprawki błędów i usprawnienia, przeczytaj informacje o tej wersji.
- ARCore SDK na Androida – pełne informacje o wersji
- ARCore dla Androida NDK – pełne informacje o wersji
- 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:
Przykładowe aplikacje w Kotlinie
Dodano przykład hello_ar_kotlin, który pokazuje sprawdzone metody korzystania z Kotlina.
Więcej informacji znajdziesz w krótkim wprowadzeniu na temat Androida.
Dodano pakiet 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
Ta wersja wprowadza te ważne zmiany:
- Identyfikatory URI są teraz obsługiwane w przypadku zbiorów danych w sekcji Nagrywanie i odtwarzanie.
Dodatkowe zmiany i aktualizacje
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych zmianach powodujących niezgodność, zapoznaj się z informacjami o tej wersji.
- ARCore SDK na Androida – pełne informacje o wersji
- ARCore dla Androida NDK – pełne informacje o wersji
- 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. Aby poznać różne poprawki błędów i usprawnienia, przeczytaj informacje o tej wersji.
- ARCore SDK na Androida – pełne informacje o wersji
- ARCore dla Androida NDK – pełne informacje o wersji
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Pełne informacje o wersji pakietu ARCore SDK for Unity
- Informacje o wersji rozszerzeń ARCore dla AR Foundation
Nowości w ARCore w wersji 1.24.0
Ta wersja wprowadza te ważne zmiany:
- nowy interfejs Raw Depth API, który dostarcza obraz głębi bez filtrowania przestrzeni obrazu;
- Dodanie możliwości nagrywania niestandardowych ścieżek danych do interfejsu Recording & Playback API
- Możliwość przeprowadzania testów głębokości docelowych
Głębokość surowego obrazu
Interfejs Raw Depth API udostępnia dane o głębi obrazu z kamery, które są bardziej dokładne niż dane z interfejsu Depth API, ale nie zawsze obejmują każdy piksel. Obrazy głębi w postaci danych nieprzetworzonych wraz z odpowiednimi obrazami z poziomem pewności można przetworzyć, aby aplikacje mogły używać tylko danych o głębi o wystarczającej dokładności do ich indywidualnego przypadku użycia.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Android NDK (C)
- Rozszerzenia ARCore dla AR Foundation
- Pakiet SDK ARCore dla Unity
Nagrywanie ścieżki niestandardowej
Nowa funkcja śledzenia niestandardowych danych w interfejsie Recording & Playback API umożliwia dodawanie niestandardowych danych do ramki ARCore podczas nagrywania i pobieranie tych samych danych z ramki podczas odtwarzania.
Przewodniki dla programistów:
- Android (Java/Kotlin)
- Android NDK (C)
- Rozszerzenia ARCore dla AR Foundation
- Pakiet SDK ARCore dla Unity
Testy interakcji z głębokością
Wcześniej testy trafień można było przeprowadzać tylko na wykrytych płaszczyznach, co ograniczało lokalizację do dużych, płaskich powierzchni. Testy kolizji z uwzględnieniem głębi wykorzystują zarówno informacje o gładkiej, jak i surowej głębi, aby zapewnić dokładniejsze wyniki kolizji nawet na powierzchniach niepłaskich i o niskiej teksturze.
Przewodniki dla programistów:
Dodatkowe zmiany i aktualizacje
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych zmianach powodujących niezgodność, zapoznaj się z informacjami o tej wersji.
- ARCore SDK na Androida – pełne informacje o wersji
- ARCore dla Androida NDK – pełne informacje o wersji
- Pełne informacje o wersji pakietu ARCore SDK na iOS
- Pełne informacje o wersji pakietu ARCore SDK for 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
W najbliższych tygodniach udostępnimy obsługę podwójnej kamery. Więcej informacji znajdziesz na stronie obsługiwanych urządzeń.
Nowe narzędzia do debugowania
Wysyłając intencję transmisji, deweloperzy mogą włączyć:
Logowanie wywołań interfejsu ARCore do dziennika debugowania Androida
Przesłoń skuteczności ARCore
Hostowanie i rozwiązywanie kotwic w chmurze
Aplikacje obsługujące AR utworzone za pomocą pakietu ARCore SDK w wersji 1.11.0 lub starszej nie mogą już hostować ani rozwiązywać punktów odniesienia w chmurze.
C: Cloud Anchors zwracane przez
ArSession_hostAndAcquireNewCloudAnchor
iArSession_resolveAndAcquireNewCloudAnchor
będą zawsze miały stanAR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL
.Java: punkty kotwiczenia w chmurze zwracane przez metody
Session.hostCloudAnchor(Anchor)
iSession.resolveCloudAnchor(String)
będą zawsze miały stanAnchor.CloudAnchorState.ERROR_INTERNAL
.Unity: punkty kotwiczenia w chmurze zwracane przez
XPSession.CreateCloudAnchor(Anchor)
iXPSession.ResolveCloudAnchor(string)
będą zawsze miały stanCloudServiceResponse.ErrorInternal
.
Aplikacje utworzone za pomocą pakietu ARCore SDK w wersji 1.12.0 lub nowszej nie są tym objęte. Korzystanie z interfejsu ARCore Cloud Anchor API podlega zasadom wycofywania.
Dodatkowe zmiany i aktualizacje
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych istotnych zmianach, zapoznaj się z informacjami o tej wersji.
Nowości w ARCore w wersji 1.22.0
W tej wersji dodano nowe interfejsy API do nagrywania i odtwarzania oraz interfejsy Camera Config Filter API dla rozszerzeń ARCore dla AR Foundation. Szczegółowe informacje znajdziesz w pełnych informacjach o wersji rozszerzeń ARCore.
Dodatkowe zmiany i aktualizacje
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych istotnych zmianach, zapoznaj się z informacjami o tej wersji.
Co nowego w ARCore w wersji 1.21.0
Ta wersja zawiera nowe interfejsy API do nagrywania i odtwarzania na Android, Androida NDK oraz Unity.
Nagrywanie i odtwarzanie
Dzięki interfejsom API do nagrywania i odtwarzania możesz raz nagrać dane wideo i AR w danym środowisku, a następnie użyć tych treści do zastąpienia sesji na żywo z kamery na potrzeby testowania. 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ć aplikacji, aby używała tych danych zamiast sesji na żywo z kamery. Dzięki temu możesz odtwarzać te treści w nieskończoność, aby wypróbować różne efekty AR bez konieczności powrotu na pole.
Szczegółowe informacje:
Java:
C:
Unity:
Nowości w ARCore w wersji 1.20.0
Ta wersja wprowadza te ważne zmiany:
Nowa obsługa trwałych punktów odniesienia Cloud Anchors.
Zaktualizowano funkcje dotyczące metadanych obrazu w przypadku Androida i Android NDK.
Nowe wskazania wymagające wersji Gradle 5.6.4 lub nowszej, aby obsługiwać rozszerzenia ARCore dla AR Foundation lub pakietu SDK ARCore dla Unity (1.19 lub nowszej) z Unity 2018.4 lub nowszą.
Nowa obsługa trwałych kotwic Cloud
Przed wersją ARCore 1.20 punkty odniesienia w chmurze można było rozwiązywać tylko przez 24 godziny od ich hostowania. Dzięki trwałym punktom odniesienia w chmurze możesz teraz tworzyć punkty odniesienia w chmurze z czasem życia (TTL) od 1 do 365 dni. Możesz też przedłużyć czas trwania kotwicy po jej hostowaniu za pomocą interfejsu Cloud Anchor Management API.
Używanie trwałych punktów odniesienia Cloud Anchors podlega nowym zasadom wycofywania punktów odniesienia Cloud Anchors.
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)
.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
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych istotnych zmianach, zapoznaj się z informacjami o tej wersji.
Co nowego w ARCore w wersji 1.19.0
Ta wersja wprowadza te ważne zmiany:
- Nowy interfejs Instant Placement API na Android, Androida NDK i Unity.
- Nowe wskazówki dotyczące tworzenia aplikacji na Androida 11 w Unity.
Natychmiastowe umieszczenie
Interfejs Instant Placement API umożliwia użytkownikowi umieszczanie obiektów AR na ekranie bez konieczności czekania, aż ARCore wykryje geometrię powierzchni. Umieszczenie obiektów jest dostosowywane w czasie rzeczywistym, gdy użytkownik porusza się po środowisku. Gdy ARCore wykryje prawidłową pozę w regionie, w którym umieszczono obiekt AR, biały obiekt automatycznie zmieni się na przezroczysty, aby dopasować się do tej pozycji.
Ten klip pokazuje wirtualną postać Androida na prawdziwym stole. Figurka jest biała i znacznie mniejsza podczas pierwszego umieszczenia. Gdy ARCore poprawi obliczenia wymiarów sceny, postać przeskakuje do dokładniejszej pozycji. Może to powodować różnice w odbieranym „rozmiarze” obiektu.
Szczegółowe informacje:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore w wersji 1.18.0
Ta wersja wprowadza te ważne zmiany:
- Nowy interfejs Depth API na Android, Android NDK i Unity.
- Nowe wskazówki dotyczące tworzenia komponentów Augmented Faces i ich importowania do Android Studio.
- Interfejs Depth API będzie obsługiwany w
4.1.0-preview.2
w przypadku zarównoAR Foundation
, jak iARCore XR Plugin
.
Depth API
Na urządzeniach obsługujących głębię interfejs Depth API korzysta z kamery RGB urządzenia obsługującego ARCore lub czujnika głębi (jeśli jest dostępny) do tworzenia map głębi. Następnie możesz użyć głębi na poziomie piksela, którą zapewnia mapa głębi, aby wirtualne obiekty pojawiały się dokładnie przed lub za obiektami ze świata rzeczywistego, co zapewni użytkownikom realistyczne wrażenia.
Na przykład na poniższych obrazach widać wirtualną postać Androida w rzeczywistej przestrzeni z bagażnikiem obok drzwi. Interfejs Depth API odpowiednio zasłania postać za krawędzią bagażnika.
Szczegółowe informacje:
Urządzenia z Androidem:
Android NDK:
Unity:
Nowości w ARCore 1.17.0
Nowości w pakiecie ARCore SDK na Androida
Dodano nowe metody, które umożliwiają buforowanie wielu klatek z kamery. Wraz z innymi technikami, takimi jak renderowanie wielowątkowe, może służyć do zmniejszenia zmienności częstotliwości wyświetlania klatek.
Dodano brakujące użycie czujnika głębi i metody celowego FPS:
Zobacz też pełne informacje o wersji pakietu SDK na Androida.
Ważne informacje w 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 poprawi wydajność i może pomóc zmniejszyć zmienność częstotliwości 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ć określone stany błędów sesji ARCore.
Zobacz też pełne informacje o wersji pakietu ARCore SDK dla Unity.
Nowości w pakiecie ARCore SDK na iOS
Rozmiar binarny pakietu SDK Cloud Anchors został znacznie zmniejszony.
Kod bitowy jest teraz obsługiwany w przypadku rozszerzonych twarzy.
Zobacz też informacje o wersji pakietu ARCore SDK na iOS.
Nowości w ARCore w wersji 1.16.0
Dostępne w pakiecie ARCore SDK na Androida i pakiecie Sceneform SDK na Androida.
Ta wersja wprowadza te ważne zmiany:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje aparatu z niższymi rozdzielczościami tekstur GPU niż domyślna rozdzielczość tekstur GPU urządzenia.
Więcej informacji znajdziesz w sekcji Obsługiwane urządzenia ARCore.
Te rozszerzone rozdzielczości GPU są dostępne za pomocą interfejsu API
getSupportedCameraConfigs(CameraConfigFilter)
.
Zobacz także:
Ważne informacje o rozszerzeniach ARCore dla AR Foundation
Ta wersja wprowadza te ważne zmiany:
XRCameraConfiguration
biblioteki AR Foundation została rozszerzona o metody, które umożliwiają wybranie odpowiedniej konfiguracji kamery na podstawie wybranych kryteriów. Do tych metod należą GetTextureDimensions(), GetFPSRange() i GetDepthSensorUsages(). Przeczytaj szczegółowe instrukcje.Minimalną zalecaną wersją rozszerzeń ARCore jest teraz Unity 2019.3.0f6. AR Foundation w wersji 3.1.0-preview.6 wymaga silnika Unity w wersji 2019.3 lub nowszej.
Unity używa teraz w swoim interfejsie API AR na wiele platform terminów Anchor, Cloud Anchor i Cloud Anchor ID. Dokumentacja dotycząca rozszerzeń ARCore została zaktualizowana, aby odzwierciedlać te zmiany.
Zobacz także:
Ważne informacje w pakiecie ARCore SDK dla Unity
Ta wersja wprowadza następującą ważną zmianę:
- Większość urządzeń zwraca teraz dodatkowe obsługiwane konfiguracje aparatu z niższymi rozdzielczościami tekstur GPU niż domyślna rozdzielczość tekstur GPU urządzenia. (szczegóły znajdziesz w sekcji „Urządzenia obsługujące ARCore”). Te rozszerzone rozdzielczości GPU są dostępne za pomocą interfejsu ARCoreCameraConfigFilter API.
Zobacz także:
Pełne informacje o wersji pakietu ARCore SDK for 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 wrażenia AR na Androida i iOS. Zobacz instrukcje dotyczące Android lub iOS.
Minimalną zalecaną wersją Unity do użycia z rozszerzeniami ARCore jest teraz 2019.2.17f1.
ARCore Extensions – pełne informacje o wersji
Ważne informacje w pakiecie ARCore SDK dla Unity
W tej wersji występują te znane problemy.
Podgląd natychmiastowy może powodować zablokowanie 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 nie wyświetlać się na urządzeniu, jeśli rozdzielczość widoku gry w Unity jest zbyt wysoka. Aby to naprawić, zmniejsz rozdzielczość widoku gry w Unity w Edytorze.
Pełne informacje o wersji pakietu ARCore SDK for Unity
Dodatkowe zmiany
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych istotnych zmianach, zapoznaj się z informacjami o tej 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, ponieważ korzysta z niego inna aplikacja na urządzeniu, przyczyna niepowodzenia śledzenia jest teraz bardziej szczegółowa:
Android:
TrackingFailureReason
toCAMERA_UNAVAILABLE
zamiastNONE
.Android NDK:
ArTrackingFailureReasons
toAR_TRACKING_FAILURE_REASON_CAMERA_UNAVAILABLE
, a nieAR_TRACKING_FAILURE_REASON_NONE
.Unity:
Session.LostTrackingReason
toLostTrackingReason.CameraUnavailable
zamiastNone
.
Google gromadzi i przetwarza dane pochodzące z użycia pakietu rozszerzeń ARCore zgodnie z Polityką prywatności Google i Warunkami korzystania z interfejsów API Google. Możesz zrezygnować z tego.
Nowości w ARCore w wersji 1.13.0
W tej wersji wprowadziliśmy następujące ważne zmiany.
Obsługa tworzenia aplikacji na iOS z Cloud Anchors za pomocą rozszerzeń ARCore dla AR Foundation w Unity.
Aby dowiedzieć się więcej o dodatkowych poprawkach błędów i innych istotnych zmianach, zapoznaj się z informacjami o tej wersji.
Co nowego w ARCore w wersji 1.12.0
W tej wersji wprowadziliśmy następujące zmiany:
Dodanie funkcji Augmented Faces na iOS. Więcej informacji znajdziesz w tym omówieniu, krótkim wprowadzeniu i przewodniku dla deweloperów.
Obsługa tworzenia aplikacji na Androida z Cloud Anchors przy użyciu rozszerzeń ARCore dla AR Foundation w Unity.
W przypadku łączników Cloud Anchors wprowadzono te zmiany:
- Aby spełnić zaktualizowane wymagania dotyczące prywatności w przypadku pakietów SDK ARCore w wersji 1.12 lub nowszej, musisz wyraźnie poinformować o używaniu punktów zakotwiczenia w chmurze w swojej aplikacji. W tym celu dodaj na ekranie powiadomienia tekst: „Aby umożliwić tę sesję, Google będzie przetwarzać dane wizualne z Twojej kamery” oraz link do informacji dodatkowych. Możesz to zrobić, wdrażając zalecany przepływ powiadomień dla użytkowników dostępny w naszych próbnych aplikacjach z punktami zakotwiczenia w chmurze.
Więcej informacji znajdziesz w wymaganiach dotyczących prywatności użytkowników.
Więcej informacji o 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 została przemianowana na Usługi Google Play dla AR. Na urządzeniach z Google Play jest on teraz dystrybuowany w ramach Usług Google Play.
Konfiguracje kamery ARCore są dostosowane do 60 FPS na obsługiwanych urządzeniach i priorytetowo korzystają z czujnika głębi na urządzeniach, które go mają. Za pomocą nowych filtrów konfiguracji aparatu możesz ograniczyć częstotliwość klatek aparatu do 30 FPS, uniemożliwić ARCore używanie 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 do interfejsu API oceny światła nowe funkcje szacowania oświetlenia HDR w przypadku Androida, Androida NDK i Unity.
Te interfejsy API korzystają z systemów uczących się, aby analizować obraz z aparatu i szacować oświetlenie otoczenia. Możesz użyć tych danych do oszacowania oświetlenia, aby uzyskać bardzo realistyczne oświetlenie, w tym główne światło kierunkowe, cienie, oświetlenie otoczenia, odbicia światła i odbicia na wirtualnych obiektach. Dzięki temu treści wirtualne 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 ARCore SDK na Androida
Ta wersja zawiera te nowe interfejsy API i funkcje:
Wyświetlacz sceny to wciągający wyświetlacz, który umożliwia korzystanie z doświadczeń AR w Twojej witrynie. Dzięki niej użytkownicy urządzeń mobilnych z Androidem mogą łatwo umieszczać w swoim otoczeniu modele 3D hostowane w internecie, a także je wyświetlać i z nimi wchodzić w interakcje.
Nowe funkcje obrazów rozszerzonych:
ARCore śledzi teraz przemieszczające się obrazy rozszerzonej rzeczywistości. Przykładami obrazów w ruchu są 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 jest tymczasowo poza zasięgiem kamery.
Użyj metody
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 dotycząca łączników Cloud zawiera teraz bardziej szczegółowe wyjaśnienie sposobu hostowania i rozwiązywania łączników.
Nowości w pakiecie ARCore SDK dla Unity
Nowe funkcje obrazów rozszerzonych:
ARCore śledzi teraz przemieszczające się obrazy rozszerzonej rzeczywistości. Przykładami obrazów w ruchu może być reklama na przejeżdżającym autobusie lub obraz na płaskim obiekcie trzymanym przez użytkownika, gdy się porusza.
Po wykryciu obrazu ARCore może nadal śledzić jego położenie i orientację, nawet jeśli obraz jest tymczasowo poza zasięgiem kamery.
Nowy interfejs API
AugmentedImage.GetTrackingMethod()
umożliwia aplikacji określenie, czy obraz rozszerzonej rzeczywistości jest obecnie śledzony przez aparat (FullTracking
), czy jest śledzony na podstawie ostatniej znanej pozycji (LastKnownPose
).
Dokumentacja dotycząca łączników Cloud zawiera teraz bardziej szczegółowe wyjaśnienie sposobu hostowania i rozwiązywania łączników.
Nowości w pakiecie ARCore SDK na iOS
Obsługa tych urządzeń:
iPad Mini piątej generacji
iPad Air trzeciej generacji
Dokumentacja dotycząca łączników Cloud zawiera teraz bardziej szczegółowe wyjaśnienie sposobu hostowania i rozwiązywania łączników.