This project contains a collection of tools and libraries to modify and optimize glTF assets.
Additionally the repository includes a command line tool that uses these steps in sequence in order to convert a glTF 2.0 core asset for use in the Windows Mixed Reality home, following the published documentation. The latest release of the Windows Mixed Reality Asset converter is available on the releases tab.
The current release includes code for:
- Packing PBR material textures using DirectXTex for use with the MSFT_packing_occlusionRoughnessMetallic and MSFT_packing_normalRoughnessMetallic extensions.
- Compressing textures as BC3, BC5 or BC7 and generate mip maps using DirectXTex for use with the MSFT_texture_dds extension.
- Removing KHR_materials_pbrSpecularGlossiness by converting material prameters to metallic-roughness.
- Mesh compression using KHR_draco_mesh_compression extension; this can only be used on 1809 and later and should only be used for assets that are transmitted over the network as load time is increased with compression.
- Merging multiple glTF assets into a asset with multiple levels of detail using the MSFT_lod extension.
- A command line tool that combines these components to create optimized glTF assets for the Windows Mixed Reality Home
- A UWP compatible Windows Runtime component to perform conversions between GLTF and GLB, as well as optimize assets for Windows Mixed Reality at runtime
This project consumes the following projects through NuGet packages:
- Microsoft.glTF.CPP, licensed under the MIT license
- DirectXTex, licensed under the MIT license
- RapidJSON, licensed under the MIT license
- Draco, licensed under Apache License 2.0
This project can be built using Visual Studio 2017 Update 4 on Windows 10 Fall Creators Update (16299.0).
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License.