The Windows Mixed Reality home is the starting point where users land before launching applications. You can design your application for Windows Mixed Reality immersive headsets to leverage a 3D model as an app launcher and to allow 3D deep links to be placed into the Windows Mixed Reality home from within your app. This article outlines the guidelines for creating 3D models compatible with the Windows Mixed Reality home.
Note: 3D models in the Windows Mixed Reality home are not currently available for use on HoloLens.
Windows expects assets to be generated using the following modeling guidelines to ensure compatibility with the Mixed Reality home experience. When modeling in your program of your choice keep in mind the following recommendations and limitations:
The Windows Mixed Reality Home does not support models that with more than 10,000 triangles. It’s recommended that you triangulate your meshes before exporting to ensure that they do not exceed this count. Windows MR also supports geometry levels of detail (LODs) to ensure a performant and high-quality experience. Windows determines which LOD to display based on the amount of screen real estate the model is taking up. Only 3 LOD levels are supported with the following recommended triangle counts:
|LOD Level||Recommended Triangle Count||Max Triangle Count|
Textures should be prepared using a PBR metal roughness workflow. Begin by creating a full set of textures including Albedo, Normal, Occlusion, Metallic, and Roughness. Windows Mixed Reality supports textures with resolutions up to 4096x4096 but its recommended that you author at 512x512. Additionally textures should be authored at resolutions in multiples of 4 as this is a requirement for the compression format applied to textures in the exporting steps outlined below.
|Recommended Texture Size||Max Texture Size|
Raw color with no lighting information. This map also contains the reflectance and diffuse information for metal (white in the metallic map) and insulator (black in the metallic map) surfaces respectively.
Tangent Space Normal map
Describes the microsurface of the object. White 1.0 is rough Black 0.0 is smooth. This map gives the asset the most character as it truly describes the surface e.g. scratches, fingerprints, smudges, grime etc.
Value scale map depicting areas of occluded light which blocks reflections
Tells the shader if something is metal or not. Raw Metal = 1.0 white Non metal = 0.0 black. There can be transitional gray values that indicate something covering the raw metal such as dirt, but in general this map should be black and white only.
Windows Mixed Reality relies on glTF (.glb) as the asset delivery format for 3D launchers and content. glTF is a royalty free open standard for 3D asset delivery maintained by the Khronos group. As glTF evolves as an industry standard for interoperable 3D content so will Microsoft’s support for the format across Windows apps and experiences.
The first step in exporting assets for Windows Mixed Reality endpoints is generating a glTF 2.0 model. The glTF working group maintains a list of supported exporters and converters to create a glTF 2.0 model. To get started use one of the programs listed on this page to create and export a glTF 2.0 model, or convert an existing model using one of the supported converters.
The Windows Mixed Reality home requires a number of optimizations to be performed on the glTF before adding it to your project (see required] and optional optimizations below). To make this process easier we have created the Windows Mixed Reality Asset Converter which is available on Github. This tool uses a set of utilities available in the Microsoft glTF toolkit to convert any standard 2.0 glTF or .glb into a Windows Mixed Reality compatible .glb. This is currently a required step for all assets used in Windows Mixed Reality, and we highly recommend using the converter to make generating your mixed reality home assets easy. For more information about using the tool please refer to the documentation also available on GitHub.
The binary glTF format packages the glTF file into a single binary package. Windows Mixed Reality Home expects assets to be delivered using the binary glTF format with embedded images and binary data. Assets packed using the binary glTF format use the .glb file extension. Standard glTF models are not supported.
The glTF asset MUST point to the default scene using the scene attribute to be rendered by Windows MR. Additionally the Windows MR glTF loader requires accessors:
The following material properties are used from core glTF 2.0 spec but not required:
The following material properties are ignored from core spec:
Windows Mixed Reality home requires a series of optimizations on top of the core glTF spec. These are defined using custom extensions. The following packing formats and extensions are required otherwise the model won’t render successfully. You can easily convert any 2.0 glTF model to meet these required specifications using the Windows Mixed Reality Asset Converter available on GitHub. This tool will perform the correct texture packing and optimizations outlined below.
Windows MR only supports rendering DDS textures packed according to the texture packing scheme defined in this section. DDS textures are referenced using the MSFT_texture_dds extension. Compressing textures is highly recommended. PC based Mixed Reality experiences expect textures to be packed using a 3-texture setup using the following packing specification:
|glTF Property||Texture||Packing Scheme|
|pbrMetallicRoughness||baseColorTexture||Red (R), Green (G), Blue (B)|
|MSFT_packing_occlusionRoughnessMetallic||roughnessMetallicOcclusionTexture||Roughness (R), Metallic (G), Occlusion (B)|
When compressing the DDS textures the following compression is expected on each map:
|Base Color, Occlusion, MetallicRoughness, Emissive||BC7|
Windows MR uses geometry node LODs to render 3D models in different levels of detail depending on screen coverage. While this feature is technically not required, it's strongly recommended for all assets. Currently Windows supports 3 levels of detail. The default LOD is 0, which represents the highest quality. Other LODs are numbered sequentially, e.g. 1, 2 and get progressively lower in quality. The Windows Mixed Reality Asset Converter supports generating assets that meet this LOD specification by accepting multiple glTF models and merging them into a single asset with valid LOD levels. The following table outlines the expected LOD ordering and triangle targets:
|LOD Level||Recommended Triangle Count||Max Triangle Count|
When using LODs always specify 3 LOD levels. Missing LODs will cause the model to not render unexpectedly as the LOD system switches to the missing LOD level. glTF 2.0 does not currently support LODs as part of the core spec. LODs should therefore be defined using the MSFT_LOD extension.
LODs are displayed in Windows Mixed Reality based on a system driven by the screen coverage value set on each LOD. Objects that are currently consuming a larger portion of the screen space are displayed at a higher LOD level. Screen coverage is not a part of the core glTF 2.0 spec and must be specified using MSFT_ScreenCoverage in the “extras” section of the MSFT_lod extension.
|LOD Level||Recommended Range||Default Range|
|LOD 0||100% - 50%||.5|
|LOD 1||Under 50% - 20%||.2|
|LOD 2||Under 20% - 1%||.01|
|LOD 4||Under 1%||-|