From 778d1fb0eaf39fc90c38016120837f710da9b062 Mon Sep 17 00:00:00 2001 From: Kurtis Date: Wed, 3 Mar 2021 12:32:52 -0800 Subject: [PATCH 1/5] Fix link to installation guide --- Documentation/GettingStartedWithMRTKAndXRSDK.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/GettingStartedWithMRTKAndXRSDK.md b/Documentation/GettingStartedWithMRTKAndXRSDK.md index 35a69c2c72c..eab8b96f5b0 100644 --- a/Documentation/GettingStartedWithMRTKAndXRSDK.md +++ b/Documentation/GettingStartedWithMRTKAndXRSDK.md @@ -4,7 +4,7 @@ XR SDK is Unity's [new XR pipeline in Unity 2019.3 and beyond](https://blogs.uni ## Prerequisites -To get started with the Mixed Reality Toolkit, follow [the provided steps](WelcomeToMRTK.md) to add MRTK to a project. +To get started with the Mixed Reality Toolkit, follow [the provided steps](Installation.md) to add MRTK to a project. ## Configuring Unity for the XR SDK pipeline From e96f51c8bd329d83e14e4d3f7725b5b5dc08d611 Mon Sep 17 00:00:00 2001 From: Kurtis Date: Wed, 3 Mar 2021 12:33:13 -0800 Subject: [PATCH 2/5] Formatting --- .../GettingStartedWithMRTKAndXRSDK.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Documentation/GettingStartedWithMRTKAndXRSDK.md b/Documentation/GettingStartedWithMRTKAndXRSDK.md index eab8b96f5b0..d3a106f42ed 100644 --- a/Documentation/GettingStartedWithMRTKAndXRSDK.md +++ b/Documentation/GettingStartedWithMRTKAndXRSDK.md @@ -10,7 +10,7 @@ To get started with the Mixed Reality Toolkit, follow [the provided steps](Insta The XR SDK pipeline currently supports 3 platforms: Windows Mixed Reality, Oculus, and OpenXR. The sections below will cover the steps needed to configure XR SDK for each platform. -#### Windows Mixed Reality +### Windows Mixed Reality 1. Go into Unity's Package Manager and install the Windows XR Plugin package, which adds support for Windows Mixed Reality on XR SDK. This will pull down a few dependency packages as well. Ensure that the following all successfully installed: 1. XR Plugin Management @@ -25,11 +25,11 @@ The XR SDK pipeline currently supports 3 platforms: Windows Mixed Reality, Oculu ![Plugin management](Images/XRSDK/PluginManagement.png) -#### Oculus +### Oculus 1. Follow the [How to configure Oculus Quest in MRTK using the XR SDK pipeline](CrossPlatform/OculusQuestMRTK.md) guide to the end. The guide outlines the steps needed to configure both Unity and MRTK to use the XR SDK pipeline for the Oculus Quest. -#### OpenXR (Preview) +### OpenXR (Preview) > [!IMPORTANT] > OpenXR in Unity is only supported on Unity 2020.2 and higher. @@ -47,16 +47,15 @@ The XR SDK pipeline currently supports 3 platforms: Windows Mixed Reality, Oculu ![Plugin management](Images/XRSDK/PluginManagementOpenXR.png) -> [!NOTE] +> [!NOTE] > If you have a pre-existing project that is using MRTK from UPM, make sure that the following line is in the **link.xml** file located in the MixedRealityToolkit.Generated folder. - + `` > [!NOTE] > For the initial release of MRTK and OpenXR, only the HoloLens 2 articulated hands and Windows Mixed Reality motion controllers are natively supported. Support for additional hardware will be added in upcoming releases. - -### Configuring MRTK for the XR SDK pipeline +## Configuring MRTK for the XR SDK pipeline If using OpenXR, choose "DefaultOpenXRConfigurationProfile" as the active profile or clone it to make customizations. @@ -66,7 +65,7 @@ These profiles are set up with the correct systems and providers, where needed. To migrate an existing profile to XR SDK, the following services and data providers should be updated: -#### Camera +### Camera From [`WindowsMixedReality.WindowsMixedRealityCameraSettings`](xref:Microsoft.MixedReality.Toolkit.WindowsMixedReality.WindowsMixedRealityCameraSettings) @@ -80,7 +79,7 @@ to ![XR SDK camera settings](Images/XRSDK/CameraSystemXRSDK.png) -#### Input +### Input From [`WindowsMixedReality.Input.WindowsMixedRealityDeviceManager`](xref:Microsoft.MixedReality.Toolkit.WindowsMixedReality.Input.WindowsMixedRealityDeviceManager) @@ -100,7 +99,7 @@ __Windows Mixed Reality__: ![XR SDK input settings](Images/XRSDK/InputSystemWMRXRSDK.png) -#### Boundary +### Boundary From [`MixedRealityBoundarySystem`](xref:Microsoft.MixedReality.Toolkit.Boundary.MixedRealityBoundarySystem) @@ -114,7 +113,7 @@ to ![XR SDK boundary settings](Images/XRSDK/BoundarySystemXRSDK.png) -#### Spatial awareness +### Spatial awareness From [`WindowsMixedReality.SpatialAwareness.WindowsMixedRealitySpatialMeshObserver`](xref:Microsoft.MixedReality.Toolkit.WindowsMixedReality.SpatialAwareness.WindowsMixedRealitySpatialMeshObserver) @@ -128,7 +127,7 @@ to ![XR SDK spatial awareness settings](Images/XRSDK/SpatialAwarenessXRSDK.png) -#### Controller mappings +### Controller mappings If using custom controller mapping profiles, open one of them and run the Mixed Reality Toolkit -> Utilities -> Update -> Controller Mapping Profiles menu item to ensure the new XR SDK controller types are defined. From c453214fa41c8f17c9722d282170fb264b93cfae Mon Sep 17 00:00:00 2001 From: Kurtis Date: Wed, 3 Mar 2021 12:33:32 -0800 Subject: [PATCH 3/5] Update Profiles.md --- Documentation/Profiles/Profiles.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/Documentation/Profiles/Profiles.md b/Documentation/Profiles/Profiles.md index 3e0c9d38f30..a2052d611c2 100644 --- a/Documentation/Profiles/Profiles.md +++ b/Documentation/Profiles/Profiles.md @@ -1,14 +1,12 @@ # Profiles -One of the main ways that the MRTK is configured is through the many profiles available in the foundation package. The main [`MixedRealityToolkit`](xref:Microsoft.MixedReality.Toolkit.MixedRealityToolkit) object in a scene will have the active profile, which is essentially a ScriptableObject. The top level MRTK Configuration Profile contains sub-profile data for each core of the primary core systems, each of which are designed to configure the behavior of their corresponding sub-systems. Furthermore, these sub-profiles are also Scriptable Objects and thus can contain references to other profile objects one level below them. There is essentially an entire tree of connected profiles that make up the configuration information for how to initialize the MRTK sub-systems and features. +One of the main ways that the MRTK is configured is through the profiles available in the foundation package. The main [`MixedRealityToolkit`](xref:Microsoft.MixedReality.Toolkit.MixedRealityToolkit) object in a scene will have the active profile, which is a ScriptableObject. The top level MRTK Configuration Profile contains sub-profile data for each core of the primary core systems, each of which are designed to configure the behavior of their corresponding subsystems. Furthermore, these sub-profiles are also ScriptableObjects and thus can contain references to other profile objects one level below them. There is essentially an entire tree of connected profiles that make up the configuration information for how to initialize the MRTK subsystems and features. -For example, the Input system's behavior is governed by an input system profile, for example the `DefaultMixedRealityInputSystemProfile` (Assets/MRTK/SDK/Profiles). It's highly recommended to always modify the profile ScriptableObject assets via the in-editor inspector. +For example, the input system's behavior is governed by an input system profile, like the `DefaultMixedRealityInputSystemProfile` (Assets/MRTK/SDK/Profiles). Profile Inspector -> [!NOTE] -> While it is intended that profiles can be swapped out at runtime, this [currently does not work](https://github.com/microsoft/MixedRealityToolkit-Unity/issues/4289) ## Default profile @@ -27,21 +25,21 @@ of the default selected profile. The key differences between the HoloLens2 profile and the Default Profile are: -**Disabled** Features: +**Disabled** features: -- [Boundary System](../Boundary/BoundarySystemGettingStarted.md) -- [Teleport System](../TeleportSystem/Overview.md) -- [Spatial Awareness System](../SpatialAwareness/SpatialAwarenessGettingStarted.md) +- [Boundary system](../Boundary/BoundarySystemGettingStarted.md) +- [Teleport system](../TeleportSystem/Overview.md) +- [Spatial awareness system](../SpatialAwareness/SpatialAwarenessGettingStarted.md) - [Hand mesh visualization](../Input/HandTracking.md) (due to performance overhead) -**Enabled** Systems: +**Enabled** systems: -- The [Eye Tracking provider](../EyeTracking/EyeTracking_Main.md) +- The [eye tracking provider](../EyeTracking/EyeTracking_Main.md) - Eye input simulation -Camera profile settings are set to match so that the editor quality and player quality are the same. This is different from the default camera profile where Opaque displays are set to a higher quality. This change means that in-editor quality will be lower, which will more closely match what will be rendered on the device. - +Camera profile settings are set to match so that the editor quality and player quality are the same. This is different from the default camera profile where opaque displays are set to a higher quality. This change means that in-editor quality will be lower, which will more closely match what will be rendered on the device. + > [!NOTE] > The Spatial Awareness system is turned off by default based on client feedback - it is an interesting visualization to see - initially but is typically turned off to avoid the visual distraction and the additional performance hit of - having it on. The system can be re-enabled by following the [instructions here](../SpatialAwareness/SpatialAwarenessGettingStarted.md). +> initially but is typically turned off to avoid the visual distraction and the additional performance hit of +> having it on. The system can be re-enabled by following the [instructions here](../SpatialAwareness/SpatialAwarenessGettingStarted.md). From d5a3bbc6a88f04e3199defe4858a901990a4e7b3 Mon Sep 17 00:00:00 2001 From: Kurtis Date: Wed, 3 Mar 2021 12:33:52 -0800 Subject: [PATCH 4/5] Add additional XR SDK profile info --- Documentation/GettingStartedWithMRTKAndXRSDK.md | 2 +- Documentation/Profiles/Profiles.md | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Documentation/GettingStartedWithMRTKAndXRSDK.md b/Documentation/GettingStartedWithMRTKAndXRSDK.md index d3a106f42ed..40a1f8fd152 100644 --- a/Documentation/GettingStartedWithMRTKAndXRSDK.md +++ b/Documentation/GettingStartedWithMRTKAndXRSDK.md @@ -61,7 +61,7 @@ If using OpenXR, choose "DefaultOpenXRConfigurationProfile" as the active profil If using other XR runtimes in the XR Plug-in Management configuration, like Windows Mixed Reality or Oculus, choose "DefaultXRSDKConfigurationProfile" as the active profile or clone it to make customizations. -These profiles are set up with the correct systems and providers, where needed. +These profiles are set up with the correct systems and providers, where needed. See [the profiles docs](Profiles/Profiles.md#xr-sdk) for more information on profile and sample support with XR SDK. To migrate an existing profile to XR SDK, the following services and data providers should be updated: diff --git a/Documentation/Profiles/Profiles.md b/Documentation/Profiles/Profiles.md index a2052d611c2..9699abf3a50 100644 --- a/Documentation/Profiles/Profiles.md +++ b/Documentation/Profiles/Profiles.md @@ -7,6 +7,13 @@ For example, the input system's behavior is governed by an input system profile, Profile Inspector +## XR SDK + +Currently, there are two profiles provided for XR SDK, `DefaultXRSDKConfigurationProfile` and `DefaultHoloLens2XRSDKConfigurationProfile`. As a result, not all samples scenes are fully supported due to scene- and scenario-specific configurations. Any samples that use `DefaultMixedRealityToolkitConfigurationProfile` and `DefaultHoloLens2ConfigurationProfile` _can_ be swapped over to their corresponding XR SDK profiles. If you're using OpenXR with XR SDK, use the `DefaultOpenXRConfigurationProfile` instead. + +Additional work is being undertaken to ease configuration and support all sample scenes, allowing for both legacy XR and XR SDK to be configured side-by-side. See issue [#9419](https://github.com/microsoft/MixedRealityToolkit-Unity/issues/9419) for tracking. + +See [Configuring MRTK for the XR SDK pipeline](../GettingStartedWithMRTKAndXRSDK.md#configuring-mrtk-for-the-xr-sdk-pipeline) for more information on converting profiles between legacy XR and XR SDK. ## Default profile From 589c2d754c300c8eb9ce55c7d9245e84d3184588 Mon Sep 17 00:00:00 2001 From: Kurtis Date: Wed, 3 Mar 2021 12:34:01 -0800 Subject: [PATCH 5/5] Add additional general profile info --- Documentation/Profiles/Profiles.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/Profiles/Profiles.md b/Documentation/Profiles/Profiles.md index 9699abf3a50..0e601cbf324 100644 --- a/Documentation/Profiles/Profiles.md +++ b/Documentation/Profiles/Profiles.md @@ -7,6 +7,12 @@ For example, the input system's behavior is governed by an input system profile, Profile Inspector +## Background + +Profiles are mainly intended to support specific scenarios across multiple devices, which are handled via the data providers. This way, an app can be designed as device-agnosticly as possible and let the MRTK and the profile's data providers handle cross-platform support. + +There are also profiles built around the input features of specific devices, such as the HoloLens 1 profile which defaults to GGV-style interactions. + ## XR SDK Currently, there are two profiles provided for XR SDK, `DefaultXRSDKConfigurationProfile` and `DefaultHoloLens2XRSDKConfigurationProfile`. As a result, not all samples scenes are fully supported due to scene- and scenario-specific configurations. Any samples that use `DefaultMixedRealityToolkitConfigurationProfile` and `DefaultHoloLens2ConfigurationProfile` _can_ be swapped over to their corresponding XR SDK profiles. If you're using OpenXR with XR SDK, use the `DefaultOpenXRConfigurationProfile` instead.