Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds 3DTILES_content_gltf extension #427

Merged
merged 13 commits into from
Nov 6, 2020
50 changes: 50 additions & 0 deletions extensions/3DTILES_content_gltf/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# 3DTILES_content_gltf

sanjeetsuhag marked this conversation as resolved.
Show resolved Hide resolved
## Contributors

* Sean Lilley, Cesium

## Status

Draft
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep it until these extensions get merged into master


## Dependencies

Written against the 3D Tiles 1.0 spec.

## Contents

- [Overview](#overview)
- [Optional vs. Required](#optional-vs-required)
- [Schema Updates](#schema-updates)
- [Examples](#examples)

## Overview

This extension allows a tileset to use [glTF 2.0](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0) and [GLB](https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#glb-file-format-specification) models directly as tile content.

Using glTF directly simplifies runtime implementations and content pipelines that already support glTF but don't support 3D Tiles native formats. glTF models may be extended with instancing, feature metadata, and compression extensions to achieve near feature parity with the existing 3D Tiles formats:

* [Batched 3D Model](../../specification/TileFormats/Batched3DModel/README.md)
* [Instanced 3D Model](../../specification/TileFormats/Instanced3DModel/README.md)
* [Point Cloud](../../specification/TileFormats/PointCloud/README.md)
* [Composite](../../specification/TileFormats/Composite/README.md)

Explicit file extensions are optional. Valid implementations may ignore it and identify a content's format by the magic field in its header (for `GLB`) or by parsing the JSON (for `glTF`). This extension allows tiles to reference glTF content but does not mandate that all tiles reference glTF content.

## Optional vs. Required

This extension is required, meaning it should be placed in the tileset JSON top-level `extensionsRequired` and `extensionsUsed` lists.

## Schema Updates

`3DTILES_content_gltf` is a property of the top-level `extensions` object and contains two optional properties:

* `extensionsUsed`: an array of glTF extensions used by glTF content in the tileset.
* `extensionsRequired`: an array of glTF extensions required by glTF content in the tileset.

The full JSON schema can be found in [tileset.3DTILES_content_gltf.schema.json](schema/tileset.3DTILES_content_gltf.schema.json).

## Examples

A simple example can be found [here](examples/tileset).
163 changes: 163 additions & 0 deletions extensions/3DTILES_content_gltf/examples/tileset/ll.gltf
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
{
"accessors": [
{
"bufferView": 0,
"byteOffset": 0,
"componentType": 5126,
"count": 240,
"type": "VEC3",
"min": [
-69.262685040012,
-63.42564369086176,
-51.21932876482606
],
"max": [
84.98775890329853,
61.14907375629991,
46.49423664715141
]
},
{
"bufferView": 1,
"byteOffset": 0,
"componentType": 5126,
"count": 240,
"type": "VEC3",
"min": [
-0.9686407230533828,
-0.7415693003175017,
-0.7655772493024053
],
"max": [
0.9686407230533828,
0.7415693003175017,
0.7655772493024053
]
},
{
"bufferView": 2,
"byteOffset": 0,
"componentType": 5123,
"count": 360,
"type": "SCALAR",
"min": [
0
],
"max": [
239
]
}
],
"asset": {
"generator": "3d-tiles-samples-generator",
"version": "2.0"
},
"buffers": [
{
"name": "buffer",
"byteLength": 6480,
"uri": "data:application/octet-stream;base64,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1/h3v8Rtfr4AAAAAaq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/1/h3P8Rtfj7MVfuj1/h3P8Rtfj7MVfuj1/h3P8Rtfj7MVfuj1/h3P8Rtfj7MVfuj1/h3v8Rtfr7MVfsj1/h3v8Rtfr7MVfsj1/h3v8Rtfr7MVfsj1/h3v8Rtfr7MVfsjaq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAAaq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3P8Rtfj4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAA1/h3v8Rtfr4AAAAAaq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCPnzXPb8xsiQ/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/7chCvnzXPT8xsiS/1/h3P8Rtfj7IWZoj1/h3P8Rtfj7IWZoj1/h3P8Rtfj7IWZoj1/h3P8Rtfj7IWZoj1/h3v8Rtfr7IWZqj1/h3v8Rtfr7IWZqj1/h3v8Rtfr7IWZqj1/h3v8Rtfr7IWZqjaq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jvgSIHz/f/EM/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/aq8jPgSIH7/f/EO/AAABAAIAAAACAAMABgAFAAQABwAGAAQACAAJAAoACAAKAAsADgANAAwADwAOAAwAEgARABAAEwASABAAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHgAdABwAHwAeABwAIAAhACIAIAAiACMAJgAlACQAJwAmACQAKgApACgAKwAqACgALAAtAC4ALAAuAC8AMAAxADIAMAAyADMANgA1ADQANwA2ADQAOAA5ADoAOAA6ADsAPgA9ADwAPwA+ADwAQgBBAEAAQwBCAEAARABFAEYARABGAEcASABJAEoASABKAEsATgBNAEwATwBOAEwAUABRAFIAUABSAFMAVgBVAFQAVwBWAFQAWgBZAFgAWwBaAFgAXABdAF4AXABeAF8AYABhAGIAYABiAGMAZgBlAGQAZwBmAGQAaABpAGoAaABqAGsAbgBtAGwAbwBuAGwAcgBxAHAAcwByAHAAdAB1AHYAdAB2AHcAeAB5AHoAeAB6AHsAfgB9AHwAfwB+AHwAgACBAIIAgACCAIMAhgCFAIQAhwCGAIQAigCJAIgAiwCKAIgAjACNAI4AjACOAI8AkACRAJIAkACSAJMAlgCVAJQAlwCWAJQAmACZAJoAmACaAJsAngCdAJwAnwCeAJwAogChAKAAowCiAKAApAClAKYApACmAKcAqACpAKoAqACqAKsArgCtAKwArwCuAKwAsACxALIAsACyALMAtgC1ALQAtwC2ALQAugC5ALgAuwC6ALgAvAC9AL4AvAC+AL8AwADBAMIAwADCAMMAxgDFAMQAxwDGAMQAyADJAMoAyADKAMsAzgDNAMwAzwDOAMwA0gDRANAA0wDSANAA1ADVANYA1ADWANcA2ADZANoA2ADaANsA3gDdANwA3wDeANwA4ADhAOIA4ADiAOMA5gDlAOQA5wDmAOQA6gDpAOgA6wDqAOgA7ADtAO4A7ADuAO8A"
}
],
"bufferViews": [
{
"buffer": 0,
"byteLength": 2880,
"byteOffset": 0,
"target": 34962,
"byteStride": 12
},
{
"buffer": 0,
"byteLength": 2880,
"byteOffset": 2880,
"target": 34962,
"byteStride": 12
},
{
"buffer": 0,
"byteLength": 720,
"byteOffset": 5760,
"target": 34963
}
],
"materials": [
{
"pbrMetallicRoughness": {
"baseColorFactor": [
1,
1,
1,
1
],
"roughnessFactor": 1,
"metallicFactor": 0
},
"alphaMode": "OPAQUE",
"doubleSided": false,
"emissiveFactor": [
0,
0,
0
]
}
],
"meshes": [
{
"primitives": [
{
"attributes": {
"POSITION": 0,
"NORMAL": 1
},
"indices": 2,
"material": 0,
"mode": 4
}
]
}
],
"nodes": [
{
"name": "Z_UP_TO_Y_UP",
"matrix": [
1,
0,
0,
0,
0,
0,
-1,
0,
0,
1,
0,
0,
0,
0,
0,
1
],
"children": [
1
]
},
{
"name": "RTC_CENTER",
"translation": [
1214914.5525041146,
-4736388.031625768,
4081548.0407588882
],
"mesh": 0
}
],
"scene": 0,
"scenes": [
{
"nodes": [
0
]
}
]
}
Loading