|
| 1 | +# Mixed Reality Toolkit Packages |
| 2 | + |
| 3 | +The Mixed Reality Toolkit (MRTK) is a collection of packages that enable cross platform Mixed Reality application development by providing support for Mixed Reality hardware and platforms in a componentized manner. |
| 4 | + |
| 5 | +There are three categories of MRTK packages: |
| 6 | + |
| 7 | +- [Foundation](#foundation-packages) |
| 8 | +- [Extension](#extension-packages) |
| 9 | +- [Experimental](#experimental-packages) |
| 10 | + |
| 11 | +## Foundation Packages |
| 12 | + |
| 13 | +The Mixed Reality Toolkit Foundation is the set of packages that enable your application to leverage common functionality across Mixed Reality Platforms. These packages are released and supported by Microsoft from source code in the [mrtk_release](https://github.com/Microsoft/MixedRealityToolkit-Unity/tree/mrtk_release) branch on GitHub. |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +The MRTK Foundation is comprised of: |
| 19 | + |
| 20 | +- [Core Package](#core-package) |
| 21 | +- [Platform Providers](#platform-providers) |
| 22 | +- [System Services](#system-services) |
| 23 | +- [Feature Assets](#feature-assets) |
| 24 | + |
| 25 | +The following sections describe the types of packages in each category. |
| 26 | + |
| 27 | +### Core Package |
| 28 | + |
| 29 | +The core package is a _required_ component and is taken as a dependency by all MRTK foundation packages. |
| 30 | + |
| 31 | +The MRTK Core package includes: |
| 32 | + |
| 33 | +- [Common interfaces, classes and data types](#common-types) |
| 34 | +- [MixedRealityToolkit scene component](#mixedrealitytoolkit-scene-component) |
| 35 | +- [MRTK Standard Shader](#mrtk-standard-shader) |
| 36 | +- [Unity Input Provider](#unity-input-provider) |
| 37 | +- [Package Management](#package-management) |
| 38 | + |
| 39 | +#### Common types |
| 40 | + |
| 41 | +The Mixed Reality Toolkit Core package contains the definitions for all of the common interfaces, classes and data types that are used by all other components. It is highly recommended that applications access MRTK components exclusively through the defined interfaces to enable the highest level of compatibility across platforms. |
| 42 | + |
| 43 | +#### MixedRealityToolkit scene component |
| 44 | + |
| 45 | +The MixedRealityToolkit scene component is the single, centralized resource manager for the Mixed Reality Toolkit. This component loads and manages the lifespan of the platform and service modules and provides resources for the systems to access their configuration settings. |
| 46 | + |
| 47 | +#### MRTK Standard Shader |
| 48 | + |
| 49 | +The MRTK Standard Shader provides the basis for virtually all of the materials provided by the MRTK. This shader is extremely flexible and optimized for the variety of platforms on which MRTK is supported. It is _highly_ recommended that your application's materials use the MRTK standard shader for optimal performance. |
| 50 | + |
| 51 | +#### Unity Input Provider |
| 52 | + |
| 53 | +The Unity Input Provider provides access to common input devices such as game controllers, touch screens and a 3D spatial mouse. |
| 54 | + |
| 55 | +#### Package Management |
| 56 | + |
| 57 | +_Coming soon_ |
| 58 | + |
| 59 | +The Mixed Reality Toolkit Core package provides support for discovering and managing the optional foundation, extension and experimental MRTK packages. |
| 60 | + |
| 61 | +### Platform Providers |
| 62 | + |
| 63 | +The MRTK Platform Provider packages are the components that enable the Mixed Reality Toolkit to target Mixed Reality hardware and platform functionality. |
| 64 | + |
| 65 | +Supported platforms include: |
| 66 | + |
| 67 | +- [Windows Mixed Reality](#windows-mixed-reality) |
| 68 | +- [OpenVR](#openvr) |
| 69 | +- [Windows Voice](#windows-voice) |
| 70 | + |
| 71 | +#### Windows Mixed Reality |
| 72 | + |
| 73 | +The Windows Mixed Reality package provides support for Microsoft HoloLens, HoloLens 2 and Windows Mixed Reality Immersive devices. The package contains full platform support, including: |
| 74 | + |
| 75 | +- Articulated Hands |
| 76 | +- Eye Tracking |
| 77 | +- Gaze targeting |
| 78 | +- Gestures |
| 79 | +- Spatial Mapping |
| 80 | +- Windows Mixed Reality Motion controllers |
| 81 | + |
| 82 | +#### OpenVR |
| 83 | + |
| 84 | +The OpenVR package provides hardware and platform support for devices using the OpenVR platform. |
| 85 | + |
| 86 | +#### Windows Voice |
| 87 | + |
| 88 | +The Windows Voice package provides support for keyword recognition and dictation functionality on Microsoft Windows 10 devices. |
| 89 | + |
| 90 | +### System Services |
| 91 | + |
| 92 | +Core platform services are provided in system service packages. These packages contain the Mixed Reality Toolkit's default implementations of the system service interfaces, defined in the [core](#core-package) package. |
| 93 | + |
| 94 | +The MRTK foundation includes the following system services: |
| 95 | + |
| 96 | +- [Boundary System](#boundary-system) |
| 97 | +- [Diagnostic System](#diagnostic-system) |
| 98 | +- [Input System](#input-system) |
| 99 | +- [Spatial Awareness System](#spatial-awareness-system) |
| 100 | +- [Teleport System](#teleport-system) |
| 101 | + |
| 102 | +#### Boundary System |
| 103 | + |
| 104 | +The MRTK Boundary System provides data about the to virtual reality playspace. On systems for which the user has configured the boundary, the system can provide a floor plane, rectangular playspace, tracked area, and more. |
| 105 | + |
| 106 | +#### Diagnostic System |
| 107 | + |
| 108 | +The MRTK Diagnostic System provides real-time performance data within your application experience. At a glace, you will be able to view frame rate, processor time and other key performance metrics as you use your application. |
| 109 | + |
| 110 | +#### Input System |
| 111 | + |
| 112 | +The MRTK Input Systems enables applications to access input in a cross platform manner by specifying user actions and assigning those actions to the most appropriate buttons and axes on target controllers. |
| 113 | + |
| 114 | +#### Spatial Awareness System |
| 115 | + |
| 116 | +The MRTK Spatial Awareness System enables access to real-world environmental data from devices such as the Microsoft HoloLens. |
| 117 | + |
| 118 | +#### Teleport System |
| 119 | + |
| 120 | +The MRTK Teleport System provides virtual reality locomotion support. |
| 121 | + |
| 122 | +### Feature Assets |
| 123 | + |
| 124 | +Feature Assets are collections of related functionality delivered as Unity assets and scripts. Some of these features include: |
| 125 | + |
| 126 | +- User Interface Controls |
| 127 | +- Standard Assets |
| 128 | +- more |
| 129 | + |
| 130 | +## Extension Packages |
| 131 | + |
| 132 | +MRTK Extension packages are a collection of packages written by Microsoft and the Community that extend and enhance the functionality of the Mixed Reality Toolkit. Extension authors will state any required dependencies, mark the package as compatible with the Mixed Reality Toolkit and provide licensing and support statements. |
| 133 | + |
| 134 | +Extension packages may provide new features and new platform support. Over time, extensions may, with the assistance and approval of the authors, be migrated into the MRTK Foundation at which time they will be released and supported by Microsoft. |
| 135 | + |
| 136 | + |
| 137 | + |
| 138 | +## Experimental Packages |
| 139 | + |
| 140 | +Experimental packages provide the ability to flight prototype features, pre-releases and exciting new ideas. The goal of most experimental packages is to try something new and to gauge customer interest. Many, though not all, experimental packages will be re-released as extensions once the prototyping and testing phase completes. |
| 141 | + |
| 142 | + |
| 143 | + |
| 144 | +## Conclusion |
| 145 | + |
| 146 | +The Mixed Reality Toolkit packages and package management system are designed to enable a clean and simple method for you to additively build features into your experiences without requiring unnecessary components to be included into the project. |
| 147 | + |
| 148 | +## See also |
| 149 | + |
| 150 | +- [Downloading MRTK](../DownloadingTheMRTK.md) |
| 151 | +- [Getting Started](../GettingStartedWithTheMRTK.md) |
0 commit comments