diff --git a/extensions/2.0/Vendor/MSFT_texture_xnb/README.md b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md new file mode 100644 index 0000000000..1ed351ea0c --- /dev/null +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/README.md @@ -0,0 +1,81 @@ +# MSFT_texture_xnb + +## Contributors + +* Dean Ellis, MonoGame + +## Status + +Draft + +## Dependencies + +Written against the glTF 2.0 spec. + +## Overview + +This extension adds the ability to specify textures using the XNA Binary format (XNB). An implementation of this extension can use the textures provided in the XNB files as an alternative to the PNG or JPG textures available in glTF 2.0. + +The extension is added to the `textures` node and specifies a `source` property that points to the index of the `images` node which in turn points to the XNB texture file. A client that does not understand this extension can ignore the XNB file and continue to rely on the PNG or JPG textures specified. + +```json +"textures": [ + { + "source": 0, + "extensions": { + "MSFT_texture_xnb": { + "source": 1 + } + } + } +], +"images": [ + { + "uri": "defaultTexture.png" + }, + { + "uri": "XNBTexture.xnb" + } +] +``` + +When used in the glTF Binary (.glb) format the `images` node that points to the XNB file uses the `mimeType` value of *image/vnd.ms-xnb*. + +```json +"textures": [ + { + "source": 0, + "extensions": { + "MSFT_texture_xnb": { + "source": 1 + } + } + } +], +"images": [ + { + "mimeType": "image/png", + "bufferView": 1 + }, + { + "mimeType": "image/vnd.ms-xnb", + "bufferView": 2 + } +] +``` + +## glTF Schema Updates + +* **JSON schema**: [glTF.MSFT_texture_xnb.schema.json](schema/glTF.MSFT_texture_xnb.schema.json) + +## Known Implementations + +This extension is used by users of XNA like frameworks such as MonoGame, FNA and KNI to load glTF files at runtime by including XNB textures. + +## Resources + +* **XNB Format Specification**: [XNB Format.docx](https://docs.monogame.net/articles/getting_to_know/whatis/content_pipeline/XNB%20Format.docx) + +## License + +MonoGame has made this Specification available under the Open Web Foundation Agreement Version 1.0, which is available at https://www.openwebfoundation.org/the-agreements/the-owf-1-0-agreements-granted-claims/owfa-1-0. diff --git a/extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json b/extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json new file mode 100644 index 0000000000..036e374abd --- /dev/null +++ b/extensions/2.0/Vendor/MSFT_texture_xnb/schema/glTF.MSFT_texture_xnb.schema.json @@ -0,0 +1,15 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema", + "title": "MSFT_texture_xnb extension", + "type": "object", + "description": "glTF extension to specify textures using the XNA Binary format (XNB).", + "allOf": [ { "$ref": "glTFProperty.schema.json" } ], + "properties": { + "source": { + "allOf": [ { "$ref": "glTFid.schema.json" } ], + "description": "The index of the images node which points to a XNB texture file." + }, + "extensions": {}, + "extras": {} + } +} \ No newline at end of file