CHANGELOG.md 21.2 KB

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[4.0.12] - 2021-01-25

Changes

[4.0.10] - 2021-01-05

Changes

  • Static library was built with Xcode 11.7 (11E801a).

Fixes

  • Fix issue with z-depth calculations on iOS when AR Foundation camera is enabled. This issue would result in shader z-depth differences (e.g. during fog computation) between normal camera rendering compared to AR camera rendering.
  • Fixed an issue which would cause the ARSession to fail when adding an invalid reference image. If the new reference image fails validation, it is not added to the reference image library, and an error is logged. The validation requires iOS 13 or later; pre iOS 13, invalid reference images will still cause the ARSession to fail.
  • Clarify limitations of the ARMeshManager in the meshing documentation.

[4.0.9] - 2020-10-06

Changes

  • The session configuration's ARWorldMap can be cleared by calling ApplyWorldMap with a default-constructed ARWorldMap. Previously, this method would throw if the ARWorldMap was not valid.

Fixes

  • Fixed an issue with the importer for ARObjects (ARKit's format for object tracking targets) which could incorrectly parse floating point numbers when the host machine used a different floating point format (e.g., swapping , and .).
  • Fixed some documentation links.
  • Fixed a hang in the meshing subsystem implementation caused by resource contention.
  • Handle non-unit scale in the background shader when calculating depth for occlusion.
  • Fixed a sporadic app freeze after an ARKit session is destroyed.

[4.0.8] - 2020-08-24

Fixes

  • Fixed an issue where ARKit shaders could incorrectly remain in the Preloaded Assets array, which could interfere with builds on other platforms. For example, in some cases, if first you built for iOS, and then built for Android, you might have seen an error message like Shader error in 'Unlit/ARKitBackground': failed to open source file: 'Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl' at line 44 (on gles3)
  • Fixed crash on startup caused by devices that support iOS 11 but not ARKit.
  • Fixed memory leak in the meshing subsystem implementation from unreleased MTLBuffers.

[4.0.6] - 2020-07-27

Fixes

  • Fixed a crash when using mesh face classifications.
  • When using the Universal Rendering Pipeline, the background rendering used the graphics setting's render pipeline asset instead of the current render pipeline. This meant that render pipeline assets assigned to a quality level would not be respected. This has been fixed.
  • Updated the CBUFFER name containing the UnityDisplayTransform matrix from AR Foundation to avoid collision.

Changes

  • Update XR Plug-in Management to 3.2.13.
  • The ARKit Settings has been moved from Project Settings > XR to Project Settings > XR Plug-in Management for consistency with other XR platforms. ARKit build settings no longer need to be created manually; installing the package will automatically create ARKit settings.
  • Static library was built with Xcode 11.6 (11E708).

[4.0.2] - 2020-06-29

Fixes

  • Fixed a bug which caused the ARKitRaycastSubsystem to throw on devices running versions of iOS prior to 13. This would most commonly be seen when using ARFoundation's ARRaycastManager.
  • Updated the ARObjectImporter to account for a namespace which changed from UnityEditor.Experimental.AssetImporters to UnityEditor.AssetImporters in 2020.2.0a17.

[4.0.1] - 2020-05-27

New

  • Added ARKit Camera Grain exposure support for iOS 13 and above, (Support to convert to Texture3D only available in Unity 2020.2 and above). Can be applied to 3D content to give a camera grain noise effect. See Camera Grain Documentation for more details.
  • Implemented XROcclusionSubsystem.TryAcquireHumanStencilCpuImage and XROcclusionSubsystem.TryAcquireHumanDepthCpuImage which provides access to the raw texture data on the CPU.

Changes

  • Updating dependency on AR Subsystems to 4.0.0.
  • Updated "camera image" APIs to use the new "CPU image" API. See the ARFoundation migration guide for more details.
  • Removed support for Xcode versions below version 11.0 as per apple app store submission guidelines. See App Store submission guidelines for more information
  • Previously, the trackable id associated with a point cloud was tied to the XRDepthSubsystem, and would only change if the subsystem was recreated. Now, the trackable id is tied to the session and will change if the session is recreated or reset. As before, there is only ever one point cloud.
  • ARKitLoader now manages the initialization and destruction of its XRMeshSubsystem. This means that using ARKit with XR Management with try to initialize (but not start) the meshing subsystem.

Fixes

[4.0.0-preview.3] - 2020-05-04

New

  • Add support for tracked (i.e., persistent) raycasts.
  • Added support for scene mesh generation through ARMeshManager.

Changes

  • Updating dependency on com.unity.xr.management to 3.2.10.

Fixes

  • Fixed all broken or missing scripting API documentation.

[4.0.0-preview.1] - 2020-03-11

Changes

  • The ARSubsystem implementions have been updated to reflect changes in the ARSubsystems API.
  • See the ARFoundation Migration Guide for more details.

Breaking Changes

  • ARKitSessionSubsystem.collaborationEnabled was both gettable and settable; now it is only gettable. To toggle the collaboration feature, set ARKitSessionSubsystem.collaborationRequested instead.
  • The static library UnityARKit.a has been prefixed with lib to follow library naming conventions. Existing projects will need to either rebuild (Build and Run > Replace) the Unity generated Xcode project or manully remove UnityARKit.a from the UnityFramework "Frameworks and Libraries" section in Xcode.

[3.1.3] - 2020-04-13

Fixes

  • Combines the three background shaders for different rendering pipelines into one shader file with variations. This eliminates compiler errors that started with Unity 2020.1.

[3.1.0-preview.8] - 2020-03-12

[3.1.0-preview.7] - 2020-03-03

Fixes

  • When auto focus was set to "Fixed" when starting an AR session, the iOS device would still perform auto focus. This has been fixed.
  • The estimated main light direction was Y flipped, e.g., it pointed up when it should be pointing down. This has been fixed.
  • Patched a memory leak by removing the coaching overly view from the superview.

[3.1.0-preview.6] - 2020-02-18

[3.1.0-preview.4] - 2020-01-08

Fixes

  • Fixes an issue with the 2D joint positions from human body tracking.

[3.1.0-preview.2] - 2019-12-16

New

  • Added support for HDR Light Estimation. HDR Light Estimation only functions during Face-Tracking on ARKit.
  • Exposed native camera configuration object by surfacing the object pointer to the managed ARSubsystems.

Fixes

  • Correcting the static library meta files that get corrupted when upgrading a project to Unity 2019.3.
  • Fixing an issue where changing the AROcclusionManager.humanSegmentationStencilMode at runtime would sometime have no effect on the ARKit platform.
  • Update documentation links to point to 3.1.
  • Updating dependent version of com.unity.xr.management package to eliminate build warning message.

[3.1.0-preview.1] - 2019-11-21

New

  • Added ARKitXROcclusionSubsystem for managing occlusion textures, such as the human segmentation stencil and human segmentation depth on some iOS devices.

[3.0.4] - 2020-04-08

Fixes

  • Adding a minimum version restriction to the com.unity.inputsystem package for the conditional code that depends on that package.
  • When auto focus was set to "Fixed" when starting an AR session, the iOS device would still perform auto focus. This has been fixed.
  • Patched a memory leak by removing the coaching overly view from the superview.
  • Fixed a crash that could occur when multithreaded rendering was enabled and Stop was called on the XRCameraSubsystem. In ARFoundation, this happens when the ARCameraManager is disabled. This happened because the textures owned by the subsystem are later manipulated on the render thread, and stopping the subsystem could invalidate the textures.

Changes

  • Default ARKit loader for XR Management will now only start and stop the implementations of XRInputSubsystem, XRCameraSubsystem, and XRSessionSubsystem when the Initialize on Startup option in XR Management is enabled.
  • Static libraries were built with Xcode 11.3.1 (11C505) and Xcode 10.3 (10G8)

[3.0.1] - 2019-11-27

  • 2020.1 verified release

Fixes

  • Correcting script compilation error when the com.unity.inputsystem package is also included in the project.

[3.0.0] - 2019-11-05

Breaking changes

  • Renamed the concept of Reference Points to Anchors. Public API changes are in AR Foundation and AR Subsystems packages.

[3.0.0-preview.4] - 2019-10-22

New

  • Add getter for the camera focus mode.
  • Add support for plane classification for devices running iOS 12 with A12 CPU or later.

Changes

  • Static libraries were built with Xcode 11.1 (11A1027) and Xcode 10.3 (10G8)

Fixes

  • Allow building on non-macOS platforms. When building for iOS, this package determines which version of Xcode is selected in the Build Settings and enables the appropriate native library. This requires that Xcode be installed, which is not possible on non-macOS platforms. In this case, the library built with Xcode 11 is used.
  • Fixed reporting of tracking state for ARHumanBodies. Previously, the tracking state was always TrackingState.Tracking. Now, the tracking state will change to TrackingState.None when the person is no longer being tracked.

[3.0.0-preview.3] - 2019-09-26

New

  • Added support for both linear and gamma color spaces.
  • Register AR tracking inputs with the new Input System

Changes

  • Build compiled binaries with Xcode 10.3 (10G8) and Xcode 11 (11A420a)

Fixes

  • Exclude tvOS as a supported platform.
  • The "match frame rate" option could incorrectly cause execution to be blocked while waiting for a new frame, leading to long frame times. This has been fixed.
  • The "match frame rate" option did not account for thermal throttling, which can put ARKit into a 30 frames per second update mode while Unity would keep trying to update at 60 frames per second. This could lead to visual artifacts like judder. The calculated frame rate now takes the thermal state into account and will do a better job matching ARKit's update rate.

[3.0.0-preview.2] - 2019-09-05

New

Fixes

  • 3.0.0-preview.1 was not compatible with some older versions of Xcode. This has been fixed.

Breaking changes

  • ARKitSessionSubsystem.worldMapSupported was previously an instance method; now it is a static method as it does not require an instance to perform this check.

[3.0.0-preview.1] - 2019-08-27

New

  • Add support for XR Management.
  • Add support for the XRParticipantSubsystem, which can track other users in a multi-user collaborative session.
  • Add support for exposureDuration
  • Add support for exposureOffset
  • Add support for Lightweight Render Pipeline and Universal Render Pipeline.
  • Add support for height scale estimatation for the 3D human body subsystem.
  • This package now supports bulding with Xcode 9, 10 and 11 beta 7.

Fixes

  • Enforce minimum target iOS version of 11.0 whenever ARKit is required.
  • Setting the ARHumanBodyManager.humanSegmentationDepthMode value to either HalfScreenResolution or FullScreenResolution resulted in an invalid human segmentation depth image. This has been fixed.

[2.2.0-preview.4] - 2019-07-29

Fixes

  • Update ARKit 3 compatibility for Xcode 11 beta 5.

[2.2.0-preview.3] - 2019-07-18

Fixes

  • Update ARKit 3 compatibility for Xcode 11 beta 4.

[2.2.0-preview.2] - 2019-07-16

New

  • Add support for NotTrackingReason.
  • Add support for matching the ARCore framerate with the Unity one. See XRSessionSubsystem.matchFrameRate.
  • Expose the priority property on the ARCollaborationData.
  • Add support for getting the ambient light intensity in lumens.

Fixes

[2.2.0-preview.1] - 2019-06-05

  • Adding support for ARKit 3 functionality: Human pose estimation, human segmentation images, session collaboration, multiple face tracking, and tracking a face (with front camera) while in world tracking (with rear camera).

[2.1.0-preview.6] - 2019-06-03

  • Use relative paths for Xcode asset catalogs. This allows the generated Xcode project to be moved to a different directory, or even a different machine. Previously, we used full paths, which prevented this.
  • Conditionally compile subsystem registrations. This means the subsystems wont't register themselves in the Editor (and won't generate warnings if there are other subsystems for other platforms).

[2.1.0-preview.5] - 2019-05-21

Fixes

  • Fix documentation links
  • Fix iOS version number parsing. This caused
    • Editor Play Mode exceptions (trying to parse a desktop OS string)
    • Incorrect handling of iOS point releases (e.g., 12.1.3)

[2.1.0-preview.3] - 2019-05-14

New

[1.0.0-preview.23] - 2019-01-04

Fixes

  • Refactor the way ARKit face tracking is in the build. Face tracking has been moved to a separate static lib so that it can be removed from the build when face tracking is not enabled. This was preventing apps from passing App Store validation, as face tracking types may not appear in the binary unless you include a privacy policy describing to users how you intend to use face tracking and face data.

New

  • Support the CameraIntrinsics API in ARExtensions.

Fixes

  • Fixed linker errors when linking UnityARKit.a with Xcode 9.x

[1.0.0-preview.20] - 2018-12-13

  • Fix package dependency.

[1.0.0-preview.19] - 2018-12-13

  • Add C header file necessary to interpret native pointers. See Includes~/UnityXRNativePtrs.h
  • Add support for setting the camera focus mode.
  • Add a build check to ensure only ARM64 is selected as the only target architecture.
  • Implement CameraConfiguration support, allowing you to enumerate and set the resolution used by the hardware camera.

[1.0.0-preview.18] - 2018-11-21

New

  • Added ARKit Face Tracking support via com.unity.xr.facesubsystem.
  • Plane detection modes: Add ability to selectively enable detection for horizontal, vertical, or both types of planes.

[1.0.0-preview.17] - 2018-10-06

Fixes

  • Fixed an issue where toggling plane detection or light estimation would momentarily pause the ARSession, causing tracking to become temporarily unstable.
  • Fixed the (new) CameraImage API to work with the 2018.3 betas.
  • ARKit's ARTrackingStateLimited was reported as TrackingState.Tracking. It is now reported as TrackingState.Unavailable.

Improvements

  • Add support for native pointer access for several ARSession-related native objects.
  • Add ARWorldMap support.
  • Add linker validation when building with the IL2CPP scripting backend to avoid stripping the Unity.XR.ARKit assembly.

[1.0.0-preview.16] - 2018-10-10

New

[1.0.0-preview.15] - 2018-09-18

Fixes

  • Fix memory leak when destroying the ARSession.

[1.0.0-preview.14] - 2018-08-10

  • Add a pre build check to make sure Metal is the first selected Graphics API in Player Settings.
  • Remove restriction on symlinking Unity libraries in Build Settings if using Unity 2018.3 or newer.
  • Change plugin entry point in UnityARKit.a to avoid name collisions with other libraries (was UnityPluginLoad).

[1.0.0-preview.13] - 2018-07-17

  • Update plugin to be compatible with Unity 2018.3
  • ARPlane.trackingState reports the session TrackingState for ARKit planes (previously it returned TrackingState.Unknown). ARKit planes do not have per-plane tracking states, so if they exist and the session is tracking, then the SDK will now report that the planes are tracked.

[1.0.0-preview.12] - 2018-06-20

  • Add -fembed-bitcode flag to UnityARKit.a to support archiving.
  • Fail the build if "Symlink Unity libraries" is checked.

[1.0.0-preview.11] - 2018-06-14

  • Fail the build if Camera Usage Description is blank

[1.0.0-preview.10] - 2018-06-08

  • Do not include build postprocessor when not on iOS
  • Add support for reference points attached to planes

[1.0.0-preview.9] - 2018-06-06

  • Remove extraneous debug log

[1.0.0-preview.8] - 2018-05-07

Added

-Created a Legacy XRInput interface to automate the switch between 2018.1 and 2018.2 XRInput versions.

[1.0.0-preview.8] - 2018-05-24

Added

  • Availability check to determine runtime support for ARKit.
  • Normalize average brightness reading from 0..1

[1.0.0-preview.5] - 2018-03-26

This is the first release of the ARKit package for multi-platform AR.

In this release we are shipping a working iteration of the ARKit package for Unity's native multi-platform AR support. Included in the package are static libraries, configuration files, binaries and project files needed to adapt ARKit to the Unity multi-platform AR API.