# Changelog
The format is based on Keep a Changelog (opens new window), and this project adheres to Semantic Versioning (opens new window).
[0.9.0] - 2022-11-24
# Unity
# Added
- Support for Oculus Touch controller interaction profile.
- The input controllers change based on the input profile available (Controller Manager).
- New public
SpacesHandManager
field in prefab to be in conformance to otherTrackableManager
implementations. - QCHT Core package additions:
- Added XR Interaction Toolkit support.
- QCHT Interaction package additions:
- Added a Reticle Activation Threshold to go along with Laser Activation Threshold, so that the Reticle can be set to show on Hover while the Laser is set to show on rest. The default for new Reticle Activation Threshold can be the same as Laser Activation Threshold for backward compatibility.
- Added XR Interaction Toolkit support.
# Changed
- Re-Center button of the host controller is resetting the ray to the head pose forward instead of the session origin.
- Added hit testing for anchor placement in the anchor sample.
- The gaze reticle position is using
XR.eyeTexture
size values, instead of screen size values.
# Fixes
- QCHT Core package fixes:
- Hand simulation system improvements.
- Removes warning in
QCHTUtils
. QCHTInstanceColor
shader issue.
- QCHT Interaction package fixes:
- Release interactable if hands are no longer tracked when interacting.
# Unreal Engine
# Added
- Support for Oculus Touch controller interaction profile
- The input controllers change based on the input profile available (Pointer Controller).
- Added hand meshing for visualization of hand tracking.
- Added start and stop functions to the API for manage hand tracking and prevent background execution.
- Added mandatory project settings before build.
- Added asynchronous thread for the Image Tracker creation.
# Changed
- Re-Center button of the host controller is resetting the ray to the head pose forward instead of the session origin.
- Added hit testing for anchor placement in the anchor sample.
- Changed samples rendering mode to forward.
- Changed input naming and requires to setup input bindings again in the Project Settings.
# Fixed
- Fixed the hit testing offset when pawn is teleported in real time.
- Fixed display overlap issue.
# Snapdragon Spaces Services
# Added
- The XR controller will be added automatically to the input source of the Spaces Services if they are available.
# Changed
- Tracked image target offset has been improved.
[0.8.1] - 2022-10-14
# Snapdragon Spaces Services
# Fixed
- Fixed app crash when launching without any viewer attached
[0.8.0] - 2022-10-13
# Unity
# Added
- New legend panel in the anchor sample scene to clarify what the different gizmo visualizations mean.
- Additional options in the BaseRuntimeFeature settings:
- Export Headless: Enabling this will export the apk without the launcher tag and make it invisible in the App Launcher.
- Alternate Start Activity: This value allows setting another activity than the Unity default one, that should be started from the SpacesLauncherActivity.
- Skip Permission Checks: Enabling this will skip permission checks done upon startup of the application.
- QCHT Core package additions:
QCHTManager
can now be created directly from scene by right clicking andQCHT > QCHTManager
.- MeshLocal bounding box.
- QCHT Interaction package additions:
- Added a custom material with a ZTest off shader on the Physics raycast reticle.
QCHTRay
related additions:- Added Ray
bendUp
power. - Added Ray
BendRatioActivationThreshold
value.
- Added Ray
ControlBox
related additions:- Added scale offset property in editor to avoid box visual clipping on the object.
- Added object rotation in initial box size computation to avoid strange behavior when object is not on its pivot.
- Added movement constraint in editor to lock user movement horizontally/vertically.
# Changed
- Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services.
Experimental
Spaces Anchor Store
load and save calls are multithreaded now. Loading saved anchors don't block the main thread anymore. - Host controller archive was updated with better touchpad visuals.
- QCHT Core package changes:
- Data population improvement
- QCHT Interaction package changes:
- New Grab Point Editor for Unity 2021.3.x
- Improved
HandPoseDriver
. - Updated alpha management on hands.
QCHTRay
related changes:- Stop computing a ray middle point if the hand is not moving to improve stability feeling on ray bending.
- Ray now bend only in up direction.
- Ray bending computation stabilization when hand is not moving.
ControlBox
related changes:- General improvements
# Fixed
- QCHT Interaction package changes:
- New Grab Point Editor for Unity 2021.3.x
- Saving prefab in immutable folder error in Unity Editor.
- Fixed wrong color applied on reticle when using
QCHTControlBox
color settings. QCHTRay
- Fixed QCHTRay and avoid disabling the reticle in a wrong state.
# Unreal Engine
# Added
- New legend panel in the anchor sample scene to clarify what the different gizmo visualizations mean.
# Changed
- Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services.
Experimental
Spaces Anchor Store
load and save calls are multithreaded now. Loading saved anchors don't block the main thread anymore. - Host controller archive was updated with better touchpad visuals.
# Fixed
- Removed warnings regarding missing engine version
- Removed unused references to SteamVR in example project
- Hit Testing behaves correctly when Pawn position has been moved
# Snapdragon Spaces Services
# Changed
- Application lifecycle improvements allow Spaces apps to be started sequentially without the need of force stopping the Spaces Services.
- Improved visual performance for more fluid representation (reduced tearing effects)
# Fixed
- Tracking two or more images simultaneously is working as expected now.
- Target names of image targets for larger sets are not corrupted anymore
- Deactivating Plane Detection while Hit Testing is on, doesn't crash the application anymore.
- Hand tracking is correctly resumed after incoming call.
- Black screen after rebooting the device is gone.
[0.7.0] - 2022-08-31
# Unity
# Added
- ⚠ Experimental
Spaces Anchor Store
for saving and loading anchors to local storage with updates in the anchor sample scene. - QCHT Core package additions:
- Added URP (Universal Render Pipeline) support for custom shaders
- Tooltips for better developer experience
- QCHT Interaction package additions:
- Added URP (Universal Render Pipeline) support for custom shaders
- Hand can be hidden even if present (Hand Presenter)
- Allow to display ghost hand or not (Hand Presenter)
- Pointer size can now be changed for distal interaction (graphic and physic raycaster)
- Tooltips for better developer experience
# Changed
- Host controller archive was updated with a light/dark mode setting and a haptic feedback toggle.
- Raycast Subsystem supports continuous hit testing with updated sample scene.
- Updated Hand Tracking packages.
- Component version panel includes a scroll view now to account for more components in the future.
- Updated Spaces Services included in the developer package.
- QCHT Core package changes:
- Reorganize UI components and rename variables for more comprehension and better developer experience
- QCHT Interaction package changes:
- Reorganize UI component and rename variables for more comprehension and better developer experience for following components:
- Hand Presenter
- QCHT Ray
- QCHT Control Box
- Grab Point
- Proximal Interactor
- Rename interaction types from
Simple
,VFF
,Ghost Only
toTriggering
,Colliding
,None
. - Enable only 4 gestures for proximal interaction (Pinch, Grab, Point, Open Hand)
- Don't import materials from hand .fbx by default
- All custom Editor scripts logic are moved in corresponding scripts
- All Texture resources are moved into texture folder
QCHTPhysicsRaycaster
supports event masks- Create control box settings and add handles display types
- Reorganize UI component and rename variables for more comprehension and better developer experience for following components:
# Fixed
- Hand joint poses from the
Spaces Hand
component have been fixed to be in world space rather than relative to the head pose. - Build issues for Unity 2021's incremental build pipeline have been fixed.
- QCHT Interaction package fixes:
- Pointer position offset
- Improved Snapping
- Added
RayState
selected when Raycast dragging - Repaint scene view after clicking Edit Pose
- QCHT Interaction controller does not require HandPresenter anymore
- Fixed issue when switching between trigger and colliding hand
# Unreal Engine
# Added
- Hand Tracking support and new sample scene.
- ⚠ Experimental support for loading and saving anchors from and to local storage with updates in the anchor sample scene.
# Changed
- Host controller archive was updated with a light/dark mode setting and a haptic feedback toggle.
- Raycast Subsystem supports continuous hit testing with updated sample scene.
- Component version panel includes a scroll view now to account for more components in the future.
- Updated Spaces Services included in the developer package.
# Fixed
- Build issues with incremental builds have been fixed.
# Snapdragon Spaces Services
# Changed
- Removed the need to select the input source in the Snapdragon Spaces Services settings view.
[0.6.1] - 2022-07-22
# Unity
# Added
- Added camera permission check for the Spaces Services on application launch, with a prompt to enable it in the Spaces Services Android settings (if it wasn't given before).
# Unreal Engine
# Added
- Added camera permission check for the Spaces Services on application launch, with a prompt to enable it in the Spaces Services Android settings (if it wasn't given before).
# Snapdragon Spaces Services
# Added
- Added camera permission prompt in case it has not been granted already.
- Added camera permission status in the UI.
# Fixed
- Fixed issue where Spaces application would not start if camera permission was not granted in the Spaces Services.
[0.6.0] - 2022-07-21
# Unity
# Added
- Custom Hand Tracking Subsystem support and new sample scene.
- Separate hand tracking packages included in the developer package for extended hand tracking capabilities.
- ⚠ Experimental Raycast Subsystem support and new sample scene.
- Samples additions:
- Component version info accessible through the main menu.
- Controller type (gaze or device pointer) is being saved across app starts and scene switches.
# Changed
- Host controller archive changed and is now of type Microsoft Mixed Reality Motion Controller Profile (opens new window), with an additional touchpad in contrast to the last version.
- Updated Spaces Services included in the developer package.
- Added checks in the image tracking subsystem to prevent false image candidates from being set and used.
# Fixed
- Fixed bug that prevented a custom controller including SpacesController in its file name from being included in the final build.
# Unreal Engine
# Added
- Image Tracking support and new sample scene.
- ⚠ Experimental Raycast support and new sample scene.
- Samples additions:
- Component version info accessible through the main menu.
- Controller type (gaze or device pointer) is being saved across app starts and scene switches.
# Changed
- Host controller archive changed and is now of type Microsoft Mixed Reality Motion Controller Profile (opens new window), with an additional touchpad in contrast to the last version.
- Updated Spaces Services included in the developer package.
[0.5.0] - 2022-06-01
# Unity
# Added
- Tracked Image Subsystem support and new sample scene.
Launch Spaces Controller
andUse Custom Controller
options added to theBaseRuntimeFeature
settings.- Added
Custom Controller Package
folder with an Android Studio project for building custom Android archives into the developer package. - Samples additions:
- Pressing and holding the host controller's
Menu
button will close the samples. - Encapsulated sample script in an own namespace.
- Added vertical bias to the
GazeInteractor
component to shift the reticle.
- Pressing and holding the host controller's
# Changed
- Host controller was moved out of Spaces Services and into the Unity package as an Android archive.
- Updated Spaces Services included in the developer package.
- OpenXR plugin version dependency of the package was updated to 1.4.2 (from 1.2.8).
- Renamed and streamlined editor scripts contained in the
Editor
folder of the package.
# Fixed
- Jitter issue for head locked content.
- Anchor and Plane Detection Subsystem lifecycle refinements, when starting and stopping the subsystem.
- Samples fixes:
- Gaze pointer size was decreased once more.
- Refined
GazeInteractor
calculation to get the horizontal half independent of platform.
# Unreal Engine
# Added
- Plane Detection support and new sample scene.
Launch Spaces Controller
andUse Custom Controller
options added to the plugin settings.- Added
Custom Controller Package
folder with an Android Studio project for building custom Android archives into the developer package.
# Changed
- Host controller was moved out of Spaces Services and into the Unreal Engine plugin as an Android archive.
- Updated Spaces Services included in the developer package.
# Fixed
- Jitter issue for head locked content.
- Samples fixes:
- Floating UI panels correctly keep their distance, when moving towards them.
- Refined
GazeInteractor
calculation to get the horizontal half independent of platform.
[0.4.1] - 2022-04-28
# Unity
# Fixed
- Updated Spaces Services included in the developer package, which fixed reading wrong values from config for ThinkReality A3.
# Unreal Engine
# Fixed
- Updated Spaces Services included in the developer package, which fixed reading wrong values from config for ThinkReality A3.
[0.4.0] - 2022-04-28
# Unity
# Added
- Added support for motorola edge+, motorola edge 30 pro.
- Plane Detection Subsystem support and new sample scene.
- Added a dialog before starting the app to give camera permissions (for plane detection and future tracking types).
- A quit button was added to the main menu to quit the application.
# Changed
- Host controller updated with new UI.
- Former SM8450 QRD device not supported anymore.
- Updated OpenXR runtime with plane detection tracking layer.
- The
UnityServicesHelper.aar
was split intoUnityServicesHelper.aar
andUnityCustomLauncher.aar
, with the option to disable the later one in theBaseRuntimeFeature
options through the OpenXR project settings.
# Fixed
- Converting from OpenXR pose data to Unity pose data applies the correct coordinate system modifications now.
# Unreal Engine
# Added
- Added support for motorola edge+, motorola edge 30 pro.
- A quit button was added to the main menu to quit the application.
- The application correctly launches on the viewer device without the need for an adb launch command.
# Changed
- Host controller updated with new UI.
- Former SM8450 QRD device not supported anymore.
- Updated OpenXR runtime with plane detection tracking layer.
# Fixed
- Gaze pointer size was decreased.
[0.3.0] - 2022-03-15
# Unity
# Added
- Anchor Subsystem support and new sample scene.
- Host controller support.
- Session Subsystem to retrieve tracking state and supported features.
- Screen timeout is disabled through the
SampleController
in the sample scenes and all controllers deriving from it. - The AR Session Origin is reset on every scene change. There is a value that can be set to control that in the
SampleController
component.
# Changed
- Updated OpenXR runtime with anchor layer.
- XR Interaction Toolkit sample scene is enabled again.
- The
UnityServicesHelper.aar
is removed from the final build, if the OpenXR plugin and theBaseRuntimeFeature
are not set. - The
Head Tracking Sample
was renamed toPositional Tracking Sample
. - The device and gaze pointer prefabs are decoupled from the
AR Camera
and don't need to be parented to it anymore. - Custom
Snapdragon Spaces Controller Profile
was removed in favor of theKhronos Simple Controller Profile
as the new default profile.
# Fixed
- The
AR Camera
's Editor movement (controlled by theEditorCameraController
) is happening in local space underAR Session Origin
now. - The
BaseRuntimeFeature
is not checking for the runtime and showing a dialog anymore if the feature is enabled, but the OpenXR plugin is disabled.
# Unreal Engine
# Added
- ARPin support and new sample map.
- Host controller support.
- Screen timeout is disabled in the
BP_Pawn
through theControlScreensaver
node. - The Tracking Origin is reset on every map change. This is a value that can be set in the
BP_Pawn
component.
# Changed
- Updated OpenXR runtime with anchor layer.
- The Interaction sample map is enabled again.
- The
Head Tracking Sample
was renamed toPositional Tracking Sample
.
# Fixed
- Player mesh used in
Positional Tracking Sample
was fixed. - Additional cosmetic improvements.
[0.2.0] - 2022-02-01
# Unity
# Added
- The built application starts its context directly on the viewer now, removing the need for a custom adb launch command.
# Changed
- Updated OpenXR runtime.
- Interaction Sample is disabled, since there is no context shown on the host anymore to register UI input.
# Fixed
- Floating UI size is smaller and can be interacted with easier.
- Additional cosmetic improvements.
# Unreal Engine
# Added
- The
Snapdragon Spaces
plugin (which requires the OpenXR plugin). - Main menu and sample map for demoing 6DoF head movement.
- (Disabled) sample map for demoing interaction with 3D objects and 2D UI.
[0.1.2] - 2021-12-01
# Unity
# Added
NOTICE.txt
file added to the archive.- Added a helper in the menu item under Window > Snapdragon Spaces > Add Scenes to Build Settings to automate putting the sample scenes to the build settings.
# Changed
- Scenes and scripts got refined and streamlined.
- UI refinements.
# Fixed
GyroOverride
is not throwing an error in the Editor anymore.- Fixed missing long press action error.