Releases: needle-mirror/com.unity.xr.arfoundation
Releases · needle-mirror/com.unity.xr.arfoundation
6.1.0-pre.4
[6.1.0-pre.4] - 2024-12-26
Added
- Added camera torch mode support to XR Simulation.
- Added APIs for batch save, load, and erase of persistent anchors. Refer to Persistent anchors for more information.
- Added XROcclusionSubsystem.TryGetSwapchainTextureDescriptors, which allows AR Foundation to make optimizations for occlusion providers that store textures in fixed-length swapchains.
- Added overrides for
object.ToString
to the following types for an improved debugging experience:- ARExternalTexture
- XRFov
- XRNearFarPlanes
- Added a constructor to XRTextureDescriptor that allows you to create an instance with only the property name ID field set.
- Added a new struct XRShaderKeywords to replace the
ShaderKeywords
struct.ShaderKeywords
was introduced to make shader keywords read-only, but its collection enumerators perform boxing operations.XRShaderKeywords
does not allocate memory on the heap when enumerated.- Added support for the
XRShaderKeywords
struct to the XR Simulation camera and occlusion providers.
- Added support for the
- Added a new value to XRResultStatus:
ProviderNotStarted
. - Added a new enum AROcclusionShaderMode and property ARShaderOcclusion.occlusionShaderMode to enable or disable hard occlusion.
- Added the following properties to the AR Shader Occlusion component:
hardOcclusionShaderKeyword
environmentDepthProjectionMatricesPropertyId
environmentDepthNearFarPlanesPropertyId
- Added two new values to the XRTextureType enum:
ColorRenderTextureRef
andDepthRenderTextureRef
, and updated theIsRenderTexture
extension method to include these types.
Changed
- Changed the AR Occlusion Manager component to add
[RequireComponent(typeof(Camera))]
. Previously, it was logically required that this component was on the same GameObject as your XR Origin's Camera, but this wasn't as clearly enforced. - Changed the timing of
AROcclusionManager.frameReceived
so that this event is now invoked duringApplication.onBeforeRender
instead ofMonoBehaviour.Update
. This change is required for compatibility with head-mounted-display (HMD) providers, and may result in improved precision of occlusion frames. - Changed the AR Shader Occlusion component to construct view-projection matrices using poses reported by
AROcclusionFrameEventArgs
instead of getting the XR camera'sWorldToCameraMatrix
. - Changed the default implementation of the pre-release API
XROcclusionSubsystem.TryGetFrame
to returntrue
. As an additive API in AR Foundation 6.1, this method must succeed for providers that don't override it. - Renamed the pre-release type
ARGpuTexture
toARExternalTexture
, and added support for theIEquatable<ARExternalTexture>
interface.
6.0.4
[6.0.4] - 2024-12-05
Fixed
- Fixed XR Simulation occlusion on Apple silicon Macs so that occlusion now renders correctly regardless of whether URP Render Graph is enabled or disabled.
- Fixed the XR Simulation point clouds implementation so that it no longer logs an error when the AR Point Cloud Manager component is disabled and then re-enabled. (ARFB-487)
6.1.0-pre.3
[6.1.0-pre.3] - 2024-11-14
Added
- Added
StatusCode.ProviderUninitialized
as an error code to represent an uninitialized state. Methods that return XRResultStatus can use this more specific error code instead ofStatusCode.UnknownError
when the provider is uninitialized. - Added SupportedUtils for easier conversion between the types
Supported
andbool
. - Added an API that allows you to turn on the device's camera torch (flash). Refer to Camera torch mode (flash) for more information
- Added support for stereo occlusion, enabling HMD providers to implement the XR occlusion subsystem:
- Added XRTextureType enum with extension methods to convert from TextureDimension.
- Added XRTextureDescriptor.textureType property to get a texture descriptor's type.
- Added the following structs to represent data used for occlusion: XRFov, XRNearFarPlanes, XROcclusionFrame, and ARGpuTexture.
- Added the following members to XROcclusionSubsystem:
depthViewProjectionMatricesPropertyId
andTryGetFrame(Allocator, out XROcclusionFrame)
. - Added more data to AROcclusionFrameEventArgs.
- Added the ARShaderOcclusion component to write depth textures to global shader memory.
Changed
- Changed the type of
XRResultStatus
fromstruct
toreadonly struct
. - Changed the Simulation Environment to be visibile in the scene hierarchy.
Deprecated
- Deprecated and replaced the following APIs:
XRTextureDescriptor.dimension
toXRTextureDescriptor.textureType
XRTextureDescriptor
constructor withdimension
parameter toXRTextureType
parameter.AROcclusionFrameEventArgs.propertyNameIds
toAROcclusionFrameEventArgs.gpuTextures
.AROcclusionFrameEventArgs.textures
toAROcclusionFrameEventArgs.gpuTextures
.AROcclusionManager.environmentDepthConfidenceTexture
toAROcclusionManager.TryGetEnvironmentDepthConfidenceTexture
.AROcclusionManager.environmentDepthTexture
toAROcclusionManager.TryGetEnvironmentDepthTexture
.
Fixed
6.1.0-pre.2
[6.1.0-pre.2] - 2024-10-09
Added
- Added enum
ARDebugMenu.DebugMenuRenderMode
and propertyARDebugMenu.debugMenuMode
that allows you to specify the render mode of the menu's canvas.
6.1.0-pre.1
[6.1.0-pre.1] - 2024-08-24
Added
- Added an XR/AR Foundation section to the Component menu to make it easier to add AR Foundation components to a GameObject.
- Added a project validation rule to validate Script Compilation During Play setting for XR simulation.
- Added support for simulated bounding box detection to XR Environment via the SimulatedBoundingBox component.
- Added three new APIs to the
XRSessionSubsystem
and provider class which can be extended by AR session providers to handle Universal Render Pipeline rendering events signaled by theARCommandBufferSupportRendererFeature
when it is included in the renderer features list for theUniversal Renderer
asset.- XRSessionSubsystem.requiresCommandBuffer
- XRSessionSubsystem.OnCommandBufferSupportEnabled
- XRSessionSubsystem.OnCommandBufferExecute
- Added a new
ARCommandBufferSupportRendererFeature
which calls the newly exposedXRSessionSubsystem
APIs for integration into Universal Render Pipeline command buffer execution. - Changed documentation for Universal Render Pipeline setup to indicate that the
ARCommandBufferSupportRendererFeature
is required when using the Vulkan Graphics API.
Changed
- Updated documentation to reflect that the Apple visionOS XR Plug-in now supports AR Foundation 6.
- Changed: Removed a 1mm depth offset from
DepthCopy.shader
. To avoid z-fighting issues with other shaders, use the Offset command instead. - Changed BoundingBoxClassifications to add additional labels provided by Apple RoomPlan.
Fixed
- Fixed an issue where the Build AssetBundles window (Assets > AR Foundation > Build AssetBundles) threw a
NullReferenceException
if no AssetBundles were built. - Fixed XR Simulation components so they now behave correctly if you disable the Reload Domain option in Configurable Enter Play Mode settings.
- Fixed the native XR Simulation Input provider so that it now explicitly sets Device mode as its only supported Tracking Origin Mode. The XR Origin component will always use Device mode as its Tracking Origin Mode and apply the XROrigin.CameraYOffset value.
- Fixed the
SimulationSessionSubsystem
so it doesn't log an error if you callARSession.Reset
before the session is initialized. - Fixed the
SimulationRaycastSubsystem
to correctly state viaXRRaycastSubsystemDescriptor.supportedTrackableTypes
that casting rays against planes is supported in XR Simulation. - Fixed
SimulatedAnchor
andSimulatedLight
so it is no longer possible for these components to log a non-deterministic error when you unload an XR Simulation environment. - Fixed XR Simulation occlusion on Apple silicon Macs so that occlusion now renders correctly regardless of whether URP Render Graph is enabled or disabled.
6.0.3
[6.0.3] - 2024-08-16
Changed
- Updated documentation to reflect that the Apple visionOS XR Plug-in now supports AR Foundation 6.
Fixed
- Fixed the
SimulationRaycastSubsystem
to correctly state viaXRRaycastSubsystemDescriptor.supportedTrackableTypes
that casting rays against planes is supported in XR Simulation. - Fixed the
SimulationSessionSubsystem
so it doesn't log an error if you callARSession.Reset
before the session is initialized.
5.1.5
[5.1.5] - 2024-05-31
No changes
6.0.2
[6.0.2] - 2024-05-22
Fixed
- Fixed an issue where the Build AssetBundles window (Assets > AR Foundation > Build AssetBundles) threw a
NullReferenceException
if no AssetBundles were built. - Fixed an issue where XR Simulation's
CameraTextureProvider
component could throw aMissingReferenceException
when an AR scene is unloaded. - Fixed XR Simulation components so they now behave correctly if you disable the Reload Domain option in Configurable Enter Play Mode settings.
- Fixed the native XR Simulation Input provider so that it now explicitly sets Device mode as its only supported Tracking Origin Mode. The XR Origin component will always use Device mode as its Tracking Origin Mode and apply the XROrigin.CameraYOffset value.
5.1.4
[5.1.4] - 2024-04-29
Fixed
- Fixed an issue where the AR Debug Menu script would not spawn a Point Cloud prefab.
- Fixed an issue where the tvOS build target would have compile errors in
Simulation.InputLayoutLoader
. - Fixed issue ARFB-421 which caused
ARMeshManager
to crash the Editor in XR Simulation when its Normals property was not enabled. - Fixed an issue where XR Simulation camera pose data could leak between multiple AR sessions.
6.0.1
[6.0.1] - 2024-04-01
Added
- Added AR Foundation API definitions for persistent anchors. Provider plug-ins can implement these methods, which allow you to save anchors during an AR session and re-load them during subsequent sessions:
- ARAnchorManager.TrySaveAnchorAsync
- ARAnchorManager.TryLoadAnchorAsync
- ARAnchorManager.TryEraseAnchorAsync
- ARAnchorManager.TryGetSavedAnchorIdsAsync
- Added an implicit conversion operator between TrackableId and SerializableGuid.
- Added a constructor to SerializableGuid allowing the creation of
SerializableGuid
s with aSystem.Guid
. - Added ARAnchorManager.TryRemoveAnchor API for removing anchors. You can either use this new method or disable the
ARAnchor
component to remove an anchor. - Added XR Simulation's
SimulationCameraPoseProvider
as a public component.
Changed
- Changed documentation to indicate that Meshing is now a supported feature in the Unity OpenXR: Meta provider plug-in.
- Changed the behavior of
ARMeshManager
to recalculate normals on a mesh if normals were requested and the provider did not calculate them. - Changed the minimum Unity version from 2023.3 to 6000.0, reflecting the new version number of Unity 6. Refer to the official Unity 6 New Naming Convention announcement for more information.
Fixed
- Fixed issue ARFB-421 which caused
ARMeshManager
to crash the Editor in XR Simulation when its Normals property was not enabled. - Fixed issue ARFB-380 where UI toolkit elements disappeared after one frame when running an XR scene with a user-facing camera on Android devices.
- Fixed an issue where disabling the
AROcclusionManager
component in XR Simulation would not stop the simulation background shader from sampling the depth texture. - Fixed an issue where XR Simulation camera pose data could leak between multiple AR sessions.
- Corrected a previous fix for an issue where the tvOS build target would have compile errors in
Simulation.InputLayoutLoader
.