Skip to content

Releases: needle-mirror/com.unity.xr.arfoundation

6.1.0-pre.4

27 Dec 07:14
Compare
Choose a tag to compare

[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 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 and DepthRenderTextureRef, and updated the IsRenderTexture 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 during Application.onBeforeRender instead of MonoBehaviour.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's WorldToCameraMatrix.
  • Changed the default implementation of the pre-release API XROcclusionSubsystem.TryGetFrame to return true. 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 to ARExternalTexture, and added support for the IEquatable<ARExternalTexture> interface.

6.0.4

05 Dec 12:13
Compare
Choose a tag to compare

[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

15 Nov 03:14
Compare
Choose a tag to compare

[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 of StatusCode.UnknownError when the provider is uninitialized.
  • Added SupportedUtils for easier conversion between the types Supported and bool.
  • 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 and TryGetFrame(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 from struct to readonly struct.
  • Changed the Simulation Environment to be visibile in the scene hierarchy.

Deprecated

  • Deprecated and replaced the following APIs:
    • XRTextureDescriptor.dimension to XRTextureDescriptor.textureType
    • XRTextureDescriptor constructor with dimension parameter to XRTextureType parameter.
    • AROcclusionFrameEventArgs.propertyNameIds to AROcclusionFrameEventArgs.gpuTextures.
    • AROcclusionFrameEventArgs.textures to AROcclusionFrameEventArgs.gpuTextures.
    • AROcclusionManager.environmentDepthConfidenceTexture to AROcclusionManager.TryGetEnvironmentDepthConfidenceTexture.
    • AROcclusionManager.environmentDepthTexture to AROcclusionManager.TryGetEnvironmentDepthTexture.

Fixed

6.1.0-pre.2

17 Oct 09:11
Compare
Choose a tag to compare

[6.1.0-pre.2] - 2024-10-09

Added

  • Added enum ARDebugMenu.DebugMenuRenderMode and property ARDebugMenu.debugMenuMode that allows you to specify the render mode of the menu's canvas.

6.1.0-pre.1

13 Sep 21:14
Compare
Choose a tag to compare

[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 the ARCommandBufferSupportRendererFeature when it is included in the renderer features list for the Universal Renderer asset.
    • XRSessionSubsystem.requiresCommandBuffer
    • XRSessionSubsystem.OnCommandBufferSupportEnabled
    • XRSessionSubsystem.OnCommandBufferExecute
  • Added a new ARCommandBufferSupportRendererFeature which calls the newly exposed XRSessionSubsystem 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 call ARSession.Reset before the session is initialized.
  • Fixed the SimulationRaycastSubsystem to correctly state via XRRaycastSubsystemDescriptor.supportedTrackableTypes that casting rays against planes is supported in XR Simulation.
  • Fixed SimulatedAnchor and SimulatedLight 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

19 Aug 21:13
Compare
Choose a tag to compare

[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 via XRRaycastSubsystemDescriptor.supportedTrackableTypes that casting rays against planes is supported in XR Simulation.
  • Fixed the SimulationSessionSubsystem so it doesn't log an error if you call ARSession.Reset before the session is initialized.

5.1.5

25 Jun 10:12
Compare
Choose a tag to compare

[5.1.5] - 2024-05-31

No changes

6.0.2

03 Jun 12:14
Compare
Choose a tag to compare

[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 a MissingReferenceException 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

02 May 09:12
Compare
Choose a tag to compare

[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

03 Apr 08:17
Compare
Choose a tag to compare

[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 SerializableGuids with a System.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.