ARCore 新增的重要變更。
ARCore 1.45.0 版新功能
Flash Mode API
ARCore 現在支援啟用裝置的手電筒模式,可 在黑暗環境中的感知能力。
Android (Kotlin/Java)
Config.FlashMode
:設定選項,用於啟用或停用裝置上的閃光燈。- 如要進一步瞭解如何偵測閃光燈功能,以及如何啟用手電筒模式,請參閱開發人員指南。
Android NDK (C)
ArFlashMode
:設定選項,用於啟用或停用裝置上的閃光燈。- 如要進一步瞭解如何偵測閃光燈功能,以及如何啟用手電筒模式,請參閱開發人員指南。
Unity 的 AR Foundation 適用的 ARCore 擴充功能支援 AR 基礎 5
AR Foundation 適用的 ARCore 擴充功能現已正式支援 AR 基礎 5。 使用 AR Foundation 5 (Unity 2022 版和 2023 年),使用下列安裝方法取得相容的 ARCore 適用的 ARCore 擴充功能:
- 透過
Add package from git url...
:使用https://github.com/google-ar/arcore-unity-extensions.git#arf5
。 - 透過
Add package from tarball...
:使用版本頁面中由arf5
標示的發布版本。
AR Foundation 第 4 版中剩餘的專案可以使用下列安裝檔 方法:
- 透過
Add package from git url...
:使用https://github.com/google-ar/arcore-unity-extensions.git#arf4
。 - 透過
Add package from tarball...
:使用版本頁面中由arf4
標示的發布版本。
如要將專案從 AR Foundation 4 升級至 AR 基礎 5,請參閱 遷移指南。
自訂指令碼符號
(例如 Beta 版支援服務中的 ARCORE_USE_ARF_5
)。
ARCore 1.44.0 版新功能
這個版本沒有新功能。
ARCore 1.43.0 版新功能
地理空間創作者遷移作業中的 Places API
地理空間創作者的搜尋功能現在採用 Google 的 New Places API。如要使用搜尋功能,請啟用「Places API (新版)」在 Google Cloud 控制台中建立新指標
ARCore 1.42.0 版新功能
在 Unity 的地理空間創作者中,貼齊圖塊
「Snap to Tile」按鈕已新增至 ARGeospatialCreatorAnchor
編輯器檢查器面板。這個按鈕可用於設定地形或屋頂錨點
固定在錨點的 3D 圖塊幾何圖形頂端,只用於編輯的海拔高度值
提供目前經緯度請注意,這個屬性不會影響
執行程式碼這有助於在編輯器中調整錨定位置
與執行階段的位置相符
ARCore 1.41.0 版新功能
地理空間創作者 API
Unity 的地理空間建立者現已支援在編輯器模式中,建立及操控地理空間創作者物件。請參閱 Geospatial Creator API 指南,瞭解新推出的類別和 API。
AR Foundation 5.x 支援 (Beta 版)
Unity 的 AR Foundation 適用的 ARCore 擴充功能現在支援 AR 基礎版本 5.x。如要將現有專案遷移至 AR 基礎,請參閱 遷移指南。
ARCore 1.40.0 版新功能
iOS 上的場景語意
Scene Semantics API 現已在 適用於 iOS 的 ARCore SDK,以及 Unity AR Foundation 的 ARCore 擴充功能 並指定 iOS 平台Scene Semantics API 可讓開發人員 即時瞭解使用者周圍的場景,將像素歸類到 11 戶外元件的種類請參閱情境簡介 語意。
iOS
Unity (AR 基礎)
在 Unity 的地理空間創作者服務中搜尋搜尋點
Unity 的地理空間創作者現在支援文字搜尋,能夠定位 相片 3D 圖塊檢視畫面。詳情請見 在地理空間創作者服務中搜尋搜尋點 瞭解詳情
ARCore 1.39.0 版新功能
這個版本沒有新功能。
ARCore 1.38.0 版新功能
這個版本沒有新功能。
ARCore 1.37.0 版新功能
場景語意
Scene Semantics 提供有關周遭場景的豐富詳細資訊,讓使用者更容易掌握周遭世界。Scene Semantics 會在相機影像動態饋給中執行機器學習模型,並提供每個像素分別對應到 11 個戶外概念標籤中的其中一個像素,並提供語意圖片。
詳情請參閱「Scene Semantics 簡介」和 semantics_java 範例應用程式。
街景服務幾何圖形
Streetscape Geometry 是全新的 ARCore Geospatial API,可在啟用 Geospatial API 的情況下,提供使用者附近區域的建築物和地形幾何圖形。
Android (Kotlin/Java)
請參閱「Streetscape 幾何圖形開發人員指南 (Kotlin/Java)」。此外,geospatial_java 範例應用程式已更新,納入街景服務幾何圖形。
Android NDK (C)
詳情請參閱 Streetscape 幾何圖形開發人員指南 (C)。
Unity (AR 基礎)
詳情請參閱「Streetscape 幾何圖形開發人員指南 (Unity)」。
iOS
詳情請參閱「Streetscape 幾何圖形開發人員指南 (iOS)」。此外,GeospatialExample 應用程式已更新,現在納入了街景服務幾何圖形。
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
提供 3D 網格。GARStreetscapeGeometry.meshTransform
提供相對於工作階段世界空間的幾何圖形原始轉換。GARStreetscapeGeometry.trackingState
可保留追蹤狀態。GARStreetscapeGeometry.type
會指出為地形或建築物幾何圖形。GARStreetscapeGeometry.quality
提供幾何圖形品質。GARStreetscapeGeometry.identifier
提供幾何圖形的專屬 ID,GARSession.createAnchorOnStreetscapeGeometry:transform:error:
會在指定的位置和方向建立錨點。GARSession.raycastStreetscapeGeometry:direction:error:
會針對在場景中載入的街景服務幾何圖形執行光點轉換。
屋頂錨點
屋頂錨點是全新的地理空間錨定類型,可協助您將內容錨定在屋頂。
Android (Kotlin/Java)
請參閱「地理空間錨定 (Java)」一文。此外,geospatial_java 範例應用程式經過更新,可加入 Rooftop 錨點。
Android NDK (C)
詳情請參閱地理空間錨點 (C)。
Unity (AR 基礎)
詳情請參閱「地理空間錨點」。此外,地理空間範例經過更新,加入了 Rooftop 錨點。
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
會為場景中的遊戲物件提供錨點:指定經緯度、高度高於屋頂的指定地點和方向。ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
iOS
詳情請參閱「地理空間錨點 (iOS)」。此外,GeospatialExample 應用程式也已更新,加入 Rooftop 錨點。
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
會在指定位置建立屋頂錨點,海拔高度則高於屋頂的公尺數,高度則以地球相對為基準。GARCreateAnchorOnRooftopFuture
會保留解析屋頂錨點的非同步狀態。GARRooftopAnchorState
說明解析屋頂錨點的狀態。
地理空間深度
在具備 VPS 涵蓋範圍的區域在 ARCore 工作階段中同時啟用 Depth API 和街景服務幾何圖形模式時,系統會使用 Streetscape 幾何圖形改善生成的深度圖片。街景幾何圖形會整合在每個產生的深度圖片 (範圍為 65.535 公尺)。您無須變更任何呼叫 Depth API 就能取得這項好處。
Android (Kotlin/Java)
詳情請參閱「地理空間深度 (Java)」一文。
Android NDK (C)
詳情請參閱地理空間深度 (C) 一文。
Unity (AR 基礎)
詳情請參閱地理空間深度 (C) 一文。
iOS
Scene Semantics 目前不支援 iOS。
支援 Vulkan 算繪
ARCore 現在透過 AHardwareBuffer
公開相機圖片,提供 Vulkan 算繪支援。您可以將這個硬體緩衝區繫結至 VkImage
,即可使用。
詳情請參閱使用 Vulkan 轉譯 ARCore 應用程式和 hello_ar_vulkan_c 範例應用程式。
Android (Kotlin/Java)
Android NDK (C)
Unity (AR 基礎)
使用 AR 基礎的 Unity 目前無法使用 Vulkan 算繪。
電子影像穩定技術 (EIS)
您可以設定 ARCore 使用電子圖像穩定功能,採用流暢的相機影格,提供更流暢的使用者體驗。
詳情請參閱「啟用電子圖像穩定技術」和 hello_eis_kotlin 範例應用程式。
Android (Kotlin/Java)
Config.ImageStabilizationMode
Frame.transformCoordinates3d()
Session.isImageStabilizationModeSupported()
- 目前已知的問題是,如果使用
OPENGL_NORMALIZED_DEVICE_COORDINATES
以外的 2D 座標呼叫Frame.transformCoordinates3d()
,會導致當機,而不會擲回IllegalArgumentException
。我們將在後續版本中解決這個問題。
Android NDK (C)
ArImageStabilizationMode
ArFrame_transformCoordinates3d()
ArSession_isImageStabilizationModeSupported()
- 目前已知的問題是,如果使用
AR_COORDINATES_2D_OPENGL_NORMALIZED_DEVICE_COORDINATES
以外的 2D 座標呼叫ArFrame_transformCoordinates3d()
,會導致應用程式取消,而不是傳回AR_ERROR_INVALID_ARGUMENT
。我們將在後續版本中解決這個問題。
Unity (AR 基礎)
使用 AR Foundation 的 Unity 目前無法使用 EIS。
iOS
EIS 目前不適用於 iOS。
ARCore 非同步 API
這個版本推出新的 ARCore 非同步 API,用於改善以 Future 和 Promise 模式執行非同步作業時的人體工學。
Android (Kotlin/Java)
- 解決地形錨點:使用
Earth.resolveAnchorOnTerrainAsync()
取得ResolveAnchorOnTerrainFuture
。舊版符號Earth.resolveAnchorOnTerrain()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 解決 Cloud 錨點:使用
Session.resolveCloudAnchorAsync()
取得ResolveCloudAnchorFuture
。舊版符號Session.resolveCloudAnchor()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 託管雲端錨點:使用
Session.hostCloudAnchorAsync()
取得HostCloudAnchorFuture
。舊的Session.hostCloudAnchor()
和Session.hostCloudAnchorWithTtl()
符號已不適用,且可能會在日後的 ARCore 版本中移除。 - 檢查 APK 可用性:使用
ArCoreApk.checkAvailabilityAsync()
註冊回呼。舊的符號ArCoreApk.checkAvailability()
並未淘汰。
Android NDK (C)
- 解決地形錨點:使用
ArEarth_resolveAnchorOnTerrainAsync()
取得ArResolveAnchorOnTerrainFuture
或使用ArResolveAnchorOnTerrainCallback
。舊版符號ArEarth_resolveAndAcquireNewAnchorOnTerrain()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 解決 Cloud 錨點:使用
ArSession_resolveCloudAnchorAsync()
取得ArResolveCloudAnchorFuture
或使用ArResolveCloudAnchorCallback
。舊版符號ArSession_resolveAndAcquireNewCloudAnchor()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 代管雲端錨點:使用
ArSession_hostCloudAnchorAsync()
取得ArHostCloudAnchorFuture
或使用ArHostCloudAnchorCallback
。舊的ArSession_hostAndAcquireNewCloudAnchor()
和ArSession_hostAndAcquireNewCloudAnchorWithTtl()
符號已不適用,且可能會在日後的 ARCore 版本中移除。 - 檢查 APK 可用性:使用
ArCoreApk_checkAvailabilityAsync()
註冊回呼。舊的符號ArCoreApk_checkAvailability()
並未淘汰。
Unity (AR 基礎)
- 解決地形錨點:使用
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
取得ResolveAnchorOnTerrainPromise
。舊版符號ARAnchorManagerExtensions.ResolveAnchorOnTerrain()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 解決 Cloud 錨點:使用
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
取得ResolveCloudAnchorPromise
。舊版符號ARAnchorManagerExtensions.ResolveCloudAnchorId()
已淘汰,可能會從日後的 ARCore 版本中移除。 - 託管雲端錨點:使用
ARAnchorManagerExtensions.HostCloudAnchorAsync()
取得HostCloudAnchorPromise
。舊的ARAnchorManagerExtensions.HostCloudAnchor()
符號已不適用,之後的 ARCore 版本可能會移除這些符號。
iOS
- 解決地形錨點:使用
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
取得GARCreateAnchorOnTerrainFuture
。舊版符號GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
已淘汰,可能會從日後的 ARCore 版本中移除。 - 解決 Cloud 錨點:使用
GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
取得GARResolveCloudAnchorFuture
。舊版符號GARSession.resolveCloudAnchorWithIdentifier:error:
已淘汰,可能會從日後的 ARCore 版本中移除。 - 託管雲端錨點:使用
GARSession.hostCloudAnchor:TTLDays:completionHandler:error:
取得GARHostCloudAnchorFuture
。舊的GARSession.hostCloudAnchor:error:
和GARSession.hostCloudAnchor:TTLDays:error:
符號已不適用,且可能會在日後的 ARCore 版本中移除。
ARCore 1.36.0 版新功能
iOS 上的 Swift Package Manager 支援功能
iOS 適用的 ARCore SDK 現已正式支援 Swift Package Manager。如要瞭解如何使用 Swift Package Manager 與 ARCore 整合,請參閱在 iOS 應用程式中啟用 AR 一文。
ARCore 1.35.0 版新功能
地理空間姿勢準確率將頂角換成偏轉
所有地理空間姿勢均會顯示其方向精確度,以取代方向準確度。
- Java/Kotlin:將
GeospatialPose.getHeading()
替換為GeospatialPose.getEastUpSouthQuaternion()
,並將GeospatialPose.getHeadingAccuracy()
替換為GeospatialPose.getOrientationYawAccuracy()
。 - C:以
ArGeospatialPose_getEastUpSouthQuaternion()
取代ArGeospatialPose_getHeading()
,並以ArGeospatialPose_getOrientationYawAccuracy()
取代ArGeospatialPose_getHeadingAccuracy()
。 - iOS:將
GARGeospatialTransform.heading
替換為GARGeospatialTransform.eastUpSouthQTarget
,並以GARGeospatialTransform.orientationYawAccuracy
取代GARGeospatialTransform.headingAccuracy
。 - Unity:將
GeospatialPose.Heading
替換為GeospatialPose.EunRotation
,將GeospatialPose.HeadingAccuracy
替換為GeospatialPose.OrientationYawAccuracy
。
其他變更與更新
如要瞭解其他變更、錯誤修正和效能提升,請參閱版本資訊:
ARCore 1.34.0 版新功能
查看裝置目前所在位置是否可以使用地理空間功能
Geospatial API 現在可以在執行階段的特定水平位置檢查視覺定位系統 (VPS) 是否可用。此 API 可以在沒有有效 AR 工作階段的情況下使用:例如顯示「進入 AR」按鈕。
- Java/Kotlin:
Session.checkVpsAvailabilityAsync()
- C:
ArSession_checkVpsAvailabilityAsync()
- iOS:
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Unity (AR Foundation):
AREarthManager.CheckVpsAvailability()
地理空間姿勢方向
地理空間姿勢在 3D 空間中公開其方向。
- Java/Kotlin:
feedbackGeospatialPose.getEastUpSouthQuaternion()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARGeospatialTransform.eastUpSouthQTarget
- Unity:
GeospatialPose.EunRotation()
地理空間姿勢轉換
地理空間姿勢現在可以轉換成世界空間 (AR) 姿勢。
如何從 AR 姿勢取得地理空間姿勢:
- Java/Kotlin:
Earth.getGeospatialPose()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARSession.geospatialTransformFromTransform:error:
- Unity:
AREarthManager.Convert(Pose)
如何從地理空間姿勢取得 AR 姿勢:
- Java/Kotlin:
Earth.getPose()
- C:
ArEarth_getPose()
- iOS:
GARSession.transformFromGeospatialCoordinate:altitude:eastUpSouthQTarget:error:
- Unity:
AREarthManager.Convert(GeospatialPose)
從這些函式取得的地理空間姿勢,標題值會設為零。請改用下列指令:
- Android (Java/Kotlin/C):角色的 EUS 四元數
- iOS:姿勢的
eastUpSouthQTarget
- Unity:角色的
EunRotation
其他變更與更新
如要瞭解其他變更、錯誤修正和效能提升,請參閱版本資訊:
ARCore 1.33.0 版新功能
新增 Cloud Anchors 端點
- 如要使用 Cloud Anchors,您必須啟用 ARCore API,而非現已淘汰的舊版 ARCore Cloud Anchor API。如要支援舊版應用程式,您可以在轉換時同時啟用兩個版本。使用 ARCore SDK 1.32.0 以下版本建構的應用程式會指定舊版 API,而使用 ARCore SDK 1.33.0 或以上版本建構的應用程式則會指定新的 API。注意事項:
- 新的 API 使用網域名稱
arcore.googleapis.com
,而不是arcorecloudanchor.googleapis.com
。 - 如果您使用的是受到 API 限制的 API 金鑰,請務必允許 ARCore API。
- 若您從後端傳送要求至 ARCore Cloud Anchor Management API,您也必須在啟用 ARCore API 後將網域名稱變更為
arcore.googleapis.com
。 - 舊版 API/端點將持續支援至 2023 年 8 月。
- 詳情請參閱 ARCore 1.33 Cloud Anchor 端點變更。
- 新的 API 使用網域名稱
地形錨點
- Geospatial Terrain Anchor API 會在指定的水平位置和海拔高度上根據水平位置的地形建立錨點。
其他變更與更新
如要瞭解其他變更、錯誤修正和效能提升,請參閱版本資訊:
ARCore 1.32.0 版新功能
這個版本沒有新功能。
Android 和 Unity (AR Foundation)
- ARCore 的
targetSdkVersion
已更新至 Android API 級別 32。如果您的應用程式未指定targetSdkVersion
,因為合併資訊清單,應用程式的targetSdkVersion
將變為 32。- Android SDK:在專案的
build.gradle
或AndroidManifest.xml
中指定targetSdkVersion
,會覆寫 ARCore 的targetSdkVersion
值。 - Android 的 AR 基礎:在 Unity 專案的專案設定 > 中指定 目標 API 級別播放器 >Android >其他設定會覆寫 ARCore 的
targetSdkVersion
值。
- Android SDK:在專案的
其他變更與更新
如要瞭解其他變更、錯誤修正和效能提升,請參閱版本資訊:
ARCore 1.31.0 版新功能
ARCore 地理空間 API
新的 ARCore Geospatial API 採用 Google 地球 3D 模型和 Google 地圖的街景服務圖像資料,可讓你的應用程式更具臨場感 以位置資訊為基礎的全球擴增實境體驗。
如需相關資訊,請參閱 ARCore Geospatial API 簡介 專屬平台開發人員說明文件,即可開始使用 Geospatial API。
長範圍深度
ARCore Depth API 現在已完成最佳化調整,可加入較長範圍的深度感應功能。 增加可代表的深度觀測範圍所有的 16 位元 使用深度圖片,最大範圍為 65535 公釐。先前 僅填入 13 位元,上限為 8191 公釐。
請參閱深度變化,瞭解 特定平台的開發人員文件,並瞭解 深度 API。
特定平台注意事項
Android
全新 ARCore 地理空間 API
Java
Earth
提供 以地球相關座標進行本地化。Earth.createAnchor()
敬上 在指定的位置和方向建立新的Anchor
相對於地球
Earth.Earthstate
敬上 說明Earth
的目前狀態,包括其TrackingState
。GeospatialPose
敬上 :描述與 地球。
C
ArEarth
敬上 提供地球相關座標的本地化功能。ArEarth_acquireNewAnchor()
敬上 在指定的位置和方向建立新的Anchor
相對於地球ArEarthState
敬上 說明ArEarth
的目前狀態,包括其ArTrackingState
。
ArGeospatialPose
敬上 :描述與 地球。
更新 ARCore 深度 API
Java
- Depth API 函式呼叫已變更:
- 已將
Frame.acquireDepthImage
重新命名為Frame.acquireDepthImage16Bits
。 - 已將
Frame.acquireRawDepthImage
重新命名為Frame.acquireRawDepthImage16Bits
。 - 兩個呼叫的輸出圖片格式已從
android.graphics.ImageFormat#DEPTH16
到android.hardware.HardwareBuffer#D_16
。 - 深度仍以 16 位元整數表示 但現在所有 16 位元都會表示深度, 791 公釐到 65535 公釐。
- 已將
- Depth API 函式呼叫
Frame.acquireDepthImage
並Frame.acquireRawDepthImage
已淘汰,請使用 「Frame.acquireDepthImage16Bits
」和「Frame.acquireRawDepthImage16Bits
」 。
- Depth API 函式呼叫已變更:
C
- Depth API 函式呼叫已變更:
- 已將
ArFrame_acquireDepthImage
重新命名為ArFrame_acquireDepthImage16Bits
。 ArFrame_acquireRawDepthImage
至ArFrame_acquireRawDepthImage16Bits
- 兩個呼叫的輸出圖片格式已從
AR_IMAGE_FORMAT_DEPTH16
到AR_IMAGE_FORMAT_D_16
。 - 深度仍以 16 位元整數表示 但現在所有 16 位元都會表示深度, 791 公釐到 65535 公釐。
- 已將
- Depth API 函式呼叫
ArFrame_acquireDepthImage
並ArFrame_acquireRawDepthImage
已淘汰,請使用 「ArFrame_acquireDepthImage16Bits
」和ArFrame_acquireRawDepthImage16Bits
。
- Depth API 函式呼叫已變更:
Unity (AR 基礎)
全新 ARCore 地理空間 API:
AREarthManager
敬上 提供地球相關座標的本地化功能。EarthTrackingState
敬上 會取得 Google 地球最新影格的追蹤狀態。EarthState
敬上 會維持 Google 地球的錯誤狀況。
GeospatialPose
敬上 描述相對於地球的特定位置、高度和指南針方向。ARGeospatialAnchor
敬上 提供場景中遊戲物件的錨點 以及相對於地球的相關方向
iOS
全新 ARCore 地理空間 API:
GAREarth
敬上 提供地球相關的本地化內容。GAREarthState.earthState
敬上 可管理錯誤狀態和狀況GAREarthState.trackingState
敬上 會保留地理空間資料所需的追蹤狀態。
GARGeospatialTransform
敬上 全域轉換的表示法,包括位置、方向、海拔高度 並評估準確率GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
敬上 建立指定位置和方向的地理空間錨點 相對於地球
其他變更
如要瞭解其他變更、錯誤修正和效能提升,請參閱版本資訊:
ARCore 1.30.0 版新功能
這個版本沒有新功能。
Android
- 已加上
@NonNull
敬上 和@Nullable
。 - 已更新用於建構範例的建構工具版本:Gradle 至 7.0.2 以及 Android Gradle 外掛程式 7.0.4 版不需要升級這些工具 現有 ARCore 應用程式對於新功能、已知問題 不相容資訊,請參閱 Android Gradle 外掛程式的 Android 說明文件。
Unity (AR 基礎)
已新增
arcore-unity-extensions-without-edm4u.tgz
版本。這個變化版本 不會包含外部依附元件,例如 適用於 Unity 的外部依附元件管理工具 同時 升級至 EDM。 使用這個精簡版可能會解決使用 Firebase 時的不相容問題 程式庫詳情請見 ARCore 專用 ARCore 擴充功能安裝操作說明 即可開始使用已將 ExternalDependencyManager 升級至 1.2.168 版,進一步支援 2021.2 以上版本,詳情請參閱 詳細資料 EDM 的變更記錄。
修正問題:即使沒有影格,ARCore 工作階段也能設定所有影格 變更,這會導致 FPS 下降。
iOS
- 修正多項錯誤並提升執行效能。
ARCore 1.29.0 版新功能
這個版本沒有新功能。
Android
- hello_ar_java 和 hello_ar_kotlin:使用
SCREENSPACE_WITH_APPROXIMATE_DISTANCE
變更物件的顏色,以便利用即時刊登位置功能清楚區分放置的物件。 - persistent_cloud_anchor_java:為範例新增缺少的建構依附元件。修正代管錨點時,即使專案設定正確,也會處於
CloudAnchorState ERROR_NOT_AUTHORIZED
狀態的錯誤。
Unity (AR 基礎)
- ARCore 擴充功能套件現在需要用到 ARKit XR 外掛程式,以確保已安裝的 AR Foundation 版本與 ARKit XR 外掛程式相容。這修正了在 Unity 2019.x 上安裝 ARCore 擴充功能並啟用 ARKit XR 外掛程式時,會發生編譯錯誤的問題。
- ARCore Extensions 專案設定已從「專案設定」>XR >ARCore 擴充功能,可移至「專案設定」>XR 外掛程式管理 >ARCore 擴充功能。
ARCoreExtensionsConfig
、ARCoreExtensionsCameraConfigFilter
、ARCoreRecordingConfig
已從「建立」>「建立」XR >ARCore 擴充功能 至「建立」>[XR] 選單。
iOS
- 修正多項錯誤並提升執行效能。
完整版本資訊
- Android 適用的 ARCore SDK 完整版本資訊
- Android NDK 適用的 ARCore 完整版本資訊
- iOS 版 ARCore SDK 完整版本資訊
- ARCore 專用 ARCore 版本資訊
ARCore 1.28.0 版新功能
- 自 2022 年 11 月起,支援 AR 功能的應用程式將無法再取得 NDK 圖片或圖片中繼資料。受影響的 SDK 版本取決於呼叫的特定函式,詳情請參閱淘汰公告。
- C:對
ArImage_getNdkImage()
和ArImage_getNdkCameraMetadata()
的呼叫一律會傳回AImage
和ACameraMetadata
物件的nullptr
。 - Java:
Frame#acquireCameraImage()
傳回的Image
物件大小為0
x0
像素。呼叫Frame#getImageMetadata()
一律會擲回IllegalArgumentException
。 - Unity (AR Foundation):使用 AR Foundation 2.1 (Unity 2019 LTS) 時,對
XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
的呼叫一律會傳回false
。AR Foundation 4.x 及更新版本不受影響,呼叫XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
時可正常運作。 - Unity 專用 ARCore SDK (已淘汰):呼叫
Frame.CameraImage.AcquireCameraImageBytes()
時的大小會是0
x0
像素。呼叫Frame.CameraMetadata.GetAllCameraMetadataTags()
將傳回空白的List<CameraMetadataTag>
。
- C:對
- Java:
ArImage#getCropRect()
現在會傳回完整大小的裁剪矩形,也就是圖片中的所有像素都有效。詳情請參閱android.media.Image#getCropRect()
。
ARCore 1.27.0 版新功能
這個版本沒有新功能。請參閱以下各種產品的版本資訊 修正錯誤並提升效能。
- Android 適用的 ARCore SDK 完整版本資訊
- Android NDK 適用的 ARCore 完整版本資訊
- iOS 版 ARCore SDK 完整版本資訊
- ARCore 專用 ARCore 版本資訊
除了多項錯誤修正之外,這個版本還修正了以下內容。
Kotlin 中的範例應用程式
新增 hello_ar_kotlin,藉此示範使用 Kotlin 時的最佳做法。
詳情請參閱 Android 快速入門 可能不準確或不適當
新增 ml_kotlin,以示範如何搭配 ARCore 使用圖片分類模型。
請參閱「使用 ARCore 做為機器學習模型的輸入內容」一節 瞭解詳情
ARCore 1.26.0 版新功能
這個版本新增了以下重大變更:
其他變更與更新
如要查看其他錯誤修正和其他破壞性變更,請參閱以下版本資訊。
- Android 適用的 ARCore SDK 完整版本資訊
- Android NDK 適用的 ARCore 完整版本資訊
- iOS 版 ARCore SDK 完整版本資訊
- ARCore 專用 ARCore 版本資訊
ARCore 1.25.0 版新功能
這個版本沒有新功能。請參閱以下各種產品的版本資訊 修正錯誤並提升效能。
- Android 適用的 ARCore SDK 完整版本資訊
- Android NDK 適用的 ARCore 完整版本資訊
- iOS 版 ARCore SDK 完整版本資訊
- Unity 專用 ARCore SDK 完整版本資訊
- ARCore 專用 ARCore 版本資訊
ARCore 1.24.0 版新功能
這個版本新增了以下重大變更:
- 全新的 Raw Depth API,提供沒有圖片空間篩選功能的深度圖片
- 自訂資料追蹤記錄功能,可用於錄製和播放 API
- 能執行深度命中測試
原始深度
Raw Depth API 針對相機圖像 但不一定能涵蓋所有像素。未加工 還有「深度圖片」及「相符的可信度圖片」 ,應用程式只能使用準確度夠高的深度資料 適合個人用途
開發人員指南:
自訂軌跡錄製
全新自訂資料追蹤功能Playback API 可讓你 ,在錄製期間將自訂資料加入 ARCore 影格,並擷取 擷取特定影格的資料
開發人員指南:
深度命中測試
先前只能對偵測到的平面執行命中測試 放置在大型平面上深度命中測試具有雙管齊下的好處 運用原始深度資訊提供更準確的命中結果 非平面和低紋理的表面
開發人員指南:
其他變更與更新
如要查看其他錯誤修正和其他破壞性變更,請參閱以下版本資訊。
- Android 適用的 ARCore SDK 完整版本資訊
- Android NDK 適用的 ARCore 完整版本資訊
- iOS 版 ARCore SDK 完整版本資訊
- Unity 專用 ARCore SDK 完整版本資訊
- ARCore 專用 ARCore 版本資訊
ARCore 1.23.0 版新功能
尚待支援雙鏡頭相機
雙鏡頭功能將在未來幾週內推出。詳情請參閱 支援的裝置 頁面。
新增偵錯工具
透過傳送廣播意圖,開發人員可以啟用:
ARCore API 呼叫紀錄 Android 偵錯記錄
ARCore 效能疊加畫面
託管及解決 Cloud Anchors
如果是使用 ARCore SDK 1.11.0 以下版本建構且支援 AR 的應用程式,將無法再 託管或解析 Cloud Anchors
C:Cloud Anchors 傳回的
ArSession_hostAndAcquireNewCloudAnchor
敬上 和ArSession_resolveAndAcquireNewCloudAnchor
狀態一律為AR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL
。Java:Cloud Anchors 傳回的
Session.hostCloudAnchor(Anchor)
敬上 和Session.resolveCloudAnchor(String)
狀態一律為Anchor.CloudAnchorState.ERROR_INTERNAL
。Unity:Cloud Anchors 傳回的
XPSession.CreateCloudAnchor(Anchor)
敬上 且XPSession.ResolveCloudAnchor(string)
一律會有狀態CloudServiceResponse.ErrorInternal
。
使用 ARCore SDK 1.12.0 以上版本建構的應用程式不會受到影響。他們的 使用 ARCore Cloud Anchor API 時,必須遵守 廢止政策。
其他變更與更新
如要查看其他錯誤修正和其他破壞性問題,請參閱以下版本資訊 並輸入變更內容
ARCore 1.22.0 版新功能
這個版本在更新時 錄製和播放 API 以及 ARCore 適用的 Camera Config Filter API 適用於 AR Foundation 的擴充功能。詳情請參閱 ARCore 擴充功能完整版本資訊。
其他變更與更新
如要查看其他錯誤修正和其他破壞性問題,請參閱以下版本資訊 並輸入變更內容
ARCore 1.21.0 版新功能
這個版本為 Android、Android NDK、 和 Unity。
錄製與播放
使用錄製和播放 API 時,你可以錄製一次影片和 AR 資料 並利用該內容取代即時攝影機工作階段 。ARCore 會將已錄製的工作階段儲存到內含 。接著 指向應用程式,使用這項資料取代即時相機工作階段。這樣一來, 就能無限次重播該內容來試試不同的 AR 效果 不必返回欄位
詳情請見:
ARCore 1.20.0 版新功能
這個版本新增了以下重大變更:
新增對永久 Cloud Anchors 的支援。
更新了 Android 和 Android NDK 的圖片中繼資料功能。
需要 Gradle 版本的新指南 5.6.4 以上版本,支援 AR Foundation 或 ARCore 適用的 ARCore 擴充功能 搭配 Unity 2018.4 以上版本和 Unity (1.19 以上版本) 適用的 SDK。
新增永久 Cloud Anchor 支援
在 ARCore 1.20 版之前,Cloud Anchors 最多只能解析 24 小時 有效存取有了永久 Cloud Anchors 一個 Cloud Anchor 的存留時間 (TTL),應介於 1 到 365 天之間。你也可以 延長錨定標記在託管後的生命週期 使用 Cloud Anchor Management API。
使用永久 Cloud Anchor 時,必須遵守新版 Cloud Anchors 廢止政策。
C:開發人員指南,
ArSession_hostAndAcquireNewCloudAnchorWithTtl
、 和ArSession_estimateFeatureMapQualityForHosting
。Java:開發人員指南、
hostCloudAnchorWithTtl
和estimateFeatureMapQualityForHosting
。iOS:開發人員指南、
hostCloudAnchor:TTLDays:error:
和estimateFeatureMapQualityForHosting:
。AR Foundation 專用 ARCore 擴充功能:Android 開發人員指南、 iOS 開發人員指南,
ARAnchorManager.HostCloudAnchor(ARAnchor, int)
,ARAnchorManager.SetAuthToken(string)
, 和ARAnchorManager.EstimateFeatureMapQualityForHosting(Pose)
。Unity 指定 Android:開發人員指南、
XPSession.CreateCloudAnchor(Anchor, int)
和XPSession.EstimateFeatureMapQualityForHosting(Pose)
。Unity 指定 iOS:開發人員指南、
XPSession.SetAuthToken(string)
敬上 和XPSession.CreateCloudAnchor(UnityARUserAnchorComponent, int)
。
其他變更與更新
如要查看其他錯誤修正和其他破壞性問題,請參閱以下版本資訊 並輸入變更內容
ARCore 1.19.0 版新功能
這個版本新增了以下重大變更:
- 全新的 Android 版 Instant Placement API Android NDK 和 Unity:
- 針對 Android 11 建構的全新指南 開發應用程式
即時刊登位置
Instant Placement API 可讓使用者在畫面上放置 AR 物件 而不必等待 ARCore 偵測表面幾何圖形。物件位置 都會隨著使用者不斷移動的環境即時調整。一次 ARCore 會在放置 AR 物件的位置偵測正確的姿勢, 空心物件會自動更新為不透明且不透明
以下片段顯示一個 Android 虛擬玩家在現實世界中 表格。這個圖形是白色,首次放置時小很多。使用 ARCore 之後 修正繪製場景維度時,圖形進入更細的場景 準確位置。這可能會導致系統偵測到的「大小」不同/ 物件。
詳情請見:
ARCore 1.18.0 版新功能
這個版本新增了以下重大變更:
- 適用於 Android 的全新深度 API Android NDK、 和 Unity。
- 全新指南 建立擴增臉孔素材資源並匯入 Android
- 兩者的
4.1.0-preview.2
都會支援深度 APIAR Foundation
和ARCore XR Plugin
。
深度 API
在深度支援裝置上,Depth API 會使用 下載 ARCore 支援裝置的 RGB 相機或主動深度感應器 (如果有的話) 產生深度圖然後您可以使用先前提供的每個像素深度 利用深度圖讓虛擬物件準確出現在前方或後方 來呈現真實世界中的物體,帶給使用者身歷其境且逼真的使用者體驗。
舉例來說,下圖顯示虛擬 Android 機器人在實際空間 門旁有一個後車廂Depth API 正確遮住 後車廂邊緣的圖形
詳情請見:
ARCore 1.17.0 版新功能
Android ARCore SDK 中的注意事項
新增允許在多個相機影格中緩衝處理的方法。此外, 您可以運用多執行緒轉譯等其他技術 影格速率變化
新增缺少的深度感應器用法和 target FPS getter:
另請參閱 Android SDK for Android 完整版本資訊。
Unity 專用 ARCore SDK 中的特色
- Unity 2018.2 以上版本新增了多執行緒轉譯支援功能, 哪些功能最能改善成效 並降低畫面更新率的變異性這是 Unity 專案 設定 (位於「專案設定」>播放器 >Android > 其他設定 >多執行緒轉譯。詳情請參閱 詳情請參閱開發人員指南。
- 已新增「
SessionStatus.ErrorCameraNotAvailable
」 和SessionStatus.ErrorIllegalState
表示特定的 ARCore 工作階段錯誤狀態。
另請參閱 Unity 適用的 ARCore SDK 完整版本資訊。
iOS 適用的 ARCore SDK 中特別有名
Cloud Anchors SDK 的二進位檔大小大幅減少。
擴增臉孔現在支援位元碼。
另請參閱 iOS 適用的 ARCore SDK 完整版本資訊。
ARCore 1.16.0 版新功能
特別是 Android ARCore SDK 和 Android 專用的 Sceneform SDK
這個版本新增了以下重大變更:
- 大多數裝置現在會傳回其他支援的相機設定,但低於上述價格
GPU 紋理解析度,低於裝置的預設 GPU 紋理解析度。
詳情請參閱「支援 ARCore 的裝置」。
您可透過
getSupportedCameraConfigs(CameraConfigFilter)
API 取得這些擴充的 GPU 解析度。
另請參閱:
特別是 ARCore 擴充功能
這個版本新增了以下重大變更:
AR Foundation 的
XRCameraConfiguration
透過多種方法擴充 依據要的條件,選擇合適的相機設定。 這些方法包括 GetTextureDimensions(), GetFPSRange(), 和 GetDepthSensorUsages()。 閱讀詳細操作說明。Unity 2019.3.0f6 現在是 ARCore 擴充功能建議的最低版本, AR Foundation 3.1.0-preview.6 需要 Unity 2019.3 以上版本。
Unity 現在會使用 Anchor、Cloud Anchor 和 Cloud Anchor ID 與跨平台 AR API 合作。 為了反映這一點,ARCore 擴充功能的說明文件已更新。
另請參閱:
Unity 專用 ARCore SDK 中的特色
這個版本新增了以下重大變更:
- 大多數裝置現在會傳回其他支援的相機設定,但低於上述價格 GPU 紋理解析度,低於裝置的預設 GPU 紋理解析度。 (詳情請參閱「支援 ARCore 的裝置」)。 這些擴充的 GPU 解析度可透過 ARCoreCameraConfigFilter API 使用。
另請參閱:
ARCore 1.15.0 版新功能
特別是 ARCore 擴充功能
這個版本新增了下列重大變更。
新增 CloudAnchors 範例,示範如何為各個應用程式建立共用 AR 體驗 分別是 Android 和 iOS查看 Android 版操作說明 或 iOS。
Unity 2019.2.17f1 現在是支援 ARCore 的最低建議版本 。
Unity 專用 ARCore SDK 中的特色
這個版本有下列已知問題。
使用 Android 9 和 USB 3 傳輸線時,即時預覽功能可能會凍結 Unity。 如要解決問題,請更新至 Android 10 或使用 USB 2 傳輸線。
Unity 的遊戲檢視畫面時,即時預覽可能無法在裝置上顯示 解析度過高如要解決這個問題,請將 Unity 的遊戲檢視畫面解析度降低到 。
其他異動
如要查看其他錯誤修正和其他破壞性問題,請參閱以下版本資訊 並輸入變更內容
ARCore 1.14.0 版新功能
這個版本新增了下列重大變更。
如果應用程式暫時關閉裝置上的其他應用程式相機, 追蹤失敗的原因現在更明確:
Android:
TrackingFailureReason
是CAMERA_UNAVAILABLE
,而不是NONE
。Android NDK:
ArTrackingFailureReasons
是AR_TRACKING_FAILURE_REASON_CAMERA_UNAVAILABLE
,而不是AR_TRACKING_FAILURE_REASON_NONE
。Unity:
Session.LostTrackingReason
是LostTrackingReason.CameraUnavailable
,而不是None
。
Google 收集及處理資料 依據《Google 隱私權政策》使用 ARCore Extensions 套件 和《Google API 服務條款》。你可以 選擇不採用這項功能。
ARCore 1.13.0 版新功能
這個版本新增了下列重大變更。
支援使用適用於 Unity 的 AR Foundation 的 ARCore 擴充功能建立 iOS 使用 Cloud Anchors 存取應用程式。
如要查看其他錯誤修正和其他破壞性問題,請參閱以下版本資訊 並輸入變更內容
ARCore 1.12.0 版新功能
這個版本新增了下列變更:
支援使用適用於 Unity 的 AR Foundation 的 ARCore 擴充功能建構 Android 使用 Cloud Anchors 存取應用程式。
Cloud Anchors 的下列變更:
- 遵守 ARCore SDK 1.12 的新版隱私權規定 或之後,您必須在 「應用程式」應用程式中 會顯示在通知畫面上:「為了支援這個工作階段,Google 會 擷取自相機的圖像資料」做法是實作 Cloud Anchor 範例應用程式中,提供了建議的使用者通知流程。
詳情請參閱「使用者隱私權規定」。
進一步瞭解 Cloud Anchors:
Android:
Android NDK:
iOS:
Unity:
ARCore 擴充功能:
ARCore 1.11.0 版新功能
這個版本新增了下列變更:
ARCore 服務已重新命名為 Google Play 服務 - AR 適用。 Google Play 裝置現已在 Google Play 服務中發行。
在支援的裝置上,ARCore 的相機設定的目標為 60 fps 並優先在配備深度感應器的裝置上使用這項功能別擔心!您可以使用 新增相機設定篩選器,將相機拍攝影格速率限制為每秒 30 個影格。 避免 ARCore 使用深度感應器,或依據兩個選項進行篩選。
進一步瞭解攝影機設定:
ARCore 1.10.0 版新功能
此版本加入新的環境 HDR 光源估計功能, 適用於 Android、Android NDK 和 Unity 的 Lighting Estimation API。
這些 API 運用機器學習技術分析輸入相機圖片, 估算環境光源。您可以使用此光源預估資料 呈現極度逼真的光線,包括主要定向光源 虛擬陰影、環境光度、特定亮點和反光 如需儲存大量結構化物件 建議使用 Cloud Bigtable讓使用者感覺更真實的虛擬內容。
詳情請見:
ARCore 1.9.0 版新功能
ARCore SDK for Android 的新功能
這個版本加入了下列新的 API 和功能:
Scene 檢視器是沉浸式檢視器, 提升網站的 AR 體驗Android 行動裝置使用者 輕鬆地在其環境中放置、檢視網頁代管的 3D 模型並與其互動。
全新擴增圖片功能:
ARCore 現在可追蹤移動的擴增圖片。 無論是在公車上還是公車上的廣告,這些圖片都屬於移動圖片 使用者手中移動的平面物件上圖片。
偵測到圖片後,ARCore 就能繼續追蹤 圖片的位置和方向 (即使圖片已暫時移動) 。
使用
AugmentedImage#getTrackingMethod()
(Java) 或ArAugmentedImage_getTrackingMethod()
(NDK),用於判斷擴增圖片 目前正在由攝影機追蹤 (FULL_TRACKING
),或正在進行追蹤 以最後已知位置 (LAST_KNOWN_POSE
) 為依據。
Cloud Anchors 說明文件現在提供更詳細的 錨定標記則由系統代管及解析。
Unity 專用 ARCore SDK 的新功能
全新擴增圖片功能:
ARCore 現在可追蹤移動的擴增圖片。 移動圖片的廣告可能是公車上的廣告 使用者隨身攜帶的平面物件上移動圖片
偵測到圖片後,ARCore 就能繼續追蹤 圖片的位置和方向 (即使圖片已暫時移動) 。
新版
AugmentedImage.GetTrackingMethod()
API 可讓應用程式判斷擴增圖片 目前正在由攝影機追蹤 (FullTracking
),或正在進行追蹤 以最後已知位置 (LastKnownPose
) 為依據。
Cloud Anchors 說明文件現在提供更詳細的 錨定標記則由系統代管及解析。
ARCore SDK for iOS 新功能
支援這些裝置:
第五代 iPad Mini
第三代 iPad Air
Cloud Anchors 說明文件現在提供更詳細的 錨定標記則由系統代管及解析。