KhronosGroup / KhronosGroup/COLLADA2GLTF

Add support for Windows Mixed Reality

Open
#98 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
573
Forks
154
PR merge metrics
No merged PRs in 30d

Description

Currently, the best support we have to create models for the Windows 10 Mixed Reality home (aka "Cliff House") is the Blender [exporter](https://github.com/KhronosGroup/glTF-Blender-Exporter).

It does indeed create a GLB file that can be used, [which I have created a full tutorial for here](https://winplatform.wordpress.com/2017/09/06/creating-3d-icons-for-your-mixed-reality-uwp-app/), but it only works if you used a simple vertex shader using one color.

In order to use a better material, the textures need to be packed according to the `msft_packingOcclusionRoughnessMetallic` spec delivered in the dds format. See [this Overview](https://github.com/sbtron/glTF/tree/MSFT_lod/extensions/Vendor/MSFT_packing_occlusionRoughnessMetallic#overview) for details.

For your convenience, here is the example from the above link:

```
{
"materials": [
{
"pbrMetallicRoughness": {
"baseColorTexture": {
"index": 0
},
"roughnessMetallicTexture": {
"index": 1
},
},
"normalTexture": {
"index": 2
},
"occlusionTexture": {
"index": 3
},
"extensions": {
"MSFT_packing_occlusionRoughnessMetallic": {
"occlusionRoughnessMetallicTexture": {
"index": 4
},
"normalTexture": {
"index": 5
}
}
}
}
],
"textures": [
{
"name":"baseColorTexture",
"source":0,
"extensions": {
"MSFT_texture_dds": {
"source": 6
}
}
},
{
"name":"roughnessMetallicTexture",
"source":1
},
{
"name":"normalTexture",
"source":2
},
{
"name":"occlusionTexture",
"source":3
},
{
"name":"occlusionRoughnessMetallic",
"extensions": {
"MSFT_texture_dds": {
"source": 4
}
}
},
{
"name":"MSFT_packing_ext_normal",
"extensions": {
"MSFT_texture_dds": {
"source": 5
}
}
}
],
"images": [
{
"mimeType": "image/png",
"bufferView": 0
},
{
"mimeType": "image/png",
"bufferView": 1
},
{
"mimeType": "image/png",
"bufferView": 2
},
{
"mimeType": "image/png",
"bufferView": 3
},
{
"mimeType": "image/vnd-ms.dds",
"bufferView": 4
},
{
"mimeType": "image/vnd-ms.dds",
"bufferView": 5
},
{
"mimeType": "image/vnd-ms.dds",
"bufferView": 6
}
]
}
```

I've opened this issue to see if it's possible to add support to the COLLADA2GLTF converter.

Note: I have communicated this to Microsoft and they recognize it's s custom workflow and are working sharing additional guidance on doing it manually, but it's a significant hurdle for developers like me who spend all their time coding the application and aren't shader ninjas :)

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue targets the COLLADA2GLTF converter and the supplied MSFT_packing_occlusionRoughnessMetallic and MSFT_texture_dds material example. Start by tracing how the converter exports glTF materials and textures, then compare its output with the example and DDS requirements. Done means converted GLB assets support the packed textures required by Windows Mixed Reality.

Written by the indexing model from the issue text.

Assessment

Tech stack
blender, cpp
Domain
ar-vr-xr, computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.