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

glTF 1.1 draft #784

Closed
wants to merge 221 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
82c4aca
Start of 1.0.1 spec updates
pjcozzi Jun 1, 2016
c5fbe35
Require accessor min and max properties
pjcozzi Jun 1, 2016
327874f
Update coordinate system description
pjcozzi Jun 1, 2016
d91d22c
Add missing required field to accessor min and max
pjcozzi Jun 1, 2016
50f9a96
Make inverse-bind matrices optional
pjcozzi Jun 1, 2016
98e5463
Missing check boxes for required min and max accessor properties
pjcozzi Jun 1, 2016
4e25d83
Make buffer and bufferView byteLength required
pjcozzi Jun 1, 2016
bd54590
Clarify attribute semantic names
pjcozzi Jun 1, 2016
1442cc9
Clarify attribute semantic names
pjcozzi Jun 1, 2016
607d4ac
Merge pull request #606 from KhronosGroup/tweak
pjcozzi Jun 1, 2016
6412f87
Merge pull request #606 from KhronosGroup/tweak
pjcozzi Jun 1, 2016
f70f981
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 1, 2016
bf6a8fb
Clarify that parameter.node does not allow some semantics
pjcozzi Jun 1, 2016
078a22c
Clarify that parameter.node does not allow some semantics
pjcozzi Jun 1, 2016
029790c
Clarify that parameter.node does not allow some semantics
pjcozzi Jun 1, 2016
bbf0f95
Updated Last Updated date
pjcozzi Jun 1, 2016
1a94b25
Updated Last Updated date
pjcozzi Jun 1, 2016
b20820e
Merge pull request #607 from KhronosGroup/tweak-2
pjcozzi Jun 1, 2016
174568f
Merge pull request #607 from KhronosGroup/tweak-2
pjcozzi Jun 1, 2016
3e73426
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 1, 2016
dea6f81
For techniques, defined parameters must be in either attributes or un…
pjcozzi Jun 1, 2016
3e80221
Explicitly mention that attribute parameters can not have a value pro…
pjcozzi Jun 1, 2016
26b3312
Allow multiple color attribute semantics
pjcozzi Jun 2, 2016
f4a2ca3
Remove unused parts of the Default Material example in Appendix A
pjcozzi Jun 2, 2016
ab55965
Remove unused parts of the Default Material example in Appendix A
pjcozzi Jun 2, 2016
d267d63
Remove unused parts of the Default Material example in Appendix A
pjcozzi Jun 2, 2016
1c9351b
Update spec date
pjcozzi Jun 2, 2016
76a120d
Update spec date
pjcozzi Jun 2, 2016
c676aad
Merge pull request #608 from KhronosGroup/tweak-3
pjcozzi Jun 2, 2016
6fdb3f0
Merge pull request #608 from KhronosGroup/tweak-3
pjcozzi Jun 2, 2016
dcce82e
Update EXT_binary_glTF reference to use KHR_ prefix
pjcozzi Jun 2, 2016
af0d31f
Update EXT_binary_glTF reference to use KHR_ prefix
pjcozzi Jun 2, 2016
dd20e32
Merge pull request #609 from KhronosGroup/tweak-5
pjcozzi Jun 2, 2016
d8f7dcb
Merge pull request #609 from KhronosGroup/tweak-5
pjcozzi Jun 2, 2016
889334d
Clarify that sceneLength must be greater than zero
pjcozzi Jun 2, 2016
3920452
Clarify that sceneLength must be greater than zero
pjcozzi Jun 2, 2016
858da77
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 2, 2016
347355d
Clarify extension example
pjcozzi Jun 2, 2016
4ed4a8a
Clarify extension example
pjcozzi Jun 2, 2016
1d4df6a
Merge pull request #613 from KhronosGroup/tweak-5
pjcozzi Jun 2, 2016
5e5a496
Merge pull request #613 from KhronosGroup/tweak-5
pjcozzi Jun 2, 2016
720cc44
Clarify that array parameters are not the same as vectors
pjcozzi Jun 2, 2016
fa915d4
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 2, 2016
ac1702a
aspectRatio and yfov must be greater than or equal to zero
pjcozzi Jun 2, 2016
7e99107
Application-specific semantics must start with _
pjcozzi Jun 2, 2016
0e87bb0
Make indices accessor constraints explicit
pjcozzi Jun 2, 2016
1b98eae
Make indices accessor constraints explicit
pjcozzi Jun 2, 2016
910ae21
Merge pull request #612 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jun 2, 2016
b3ce805
Merge pull request #612 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jun 2, 2016
44e2154
Merge pull request #615 from KhronosGroup/indices
pjcozzi Jun 3, 2016
3ad835c
Merge pull request #615 from KhronosGroup/indices
pjcozzi Jun 3, 2016
d90b829
Updated quantized attributes extension
lasalvavida Jun 3, 2016
9e757a1
Fixed line break
lasalvavida Jun 3, 2016
bd42993
Added @lexaknyazev to acknowledgements
lasalvavida Jun 3, 2016
baab77d
More specific constraints for accessor min and max
pjcozzi Jun 3, 2016
bb678e1
More specific constraints for accessor min and max
pjcozzi Jun 3, 2016
e6f6b2c
Merge pull request #617 from KhronosGroup/min-max
pjcozzi Jun 6, 2016
b8375c9
Merge pull request #617 from KhronosGroup/min-max
pjcozzi Jun 6, 2016
d38fe7c
Merge master to 1.0.1
pjcozzi Jun 6, 2016
fb2f0e6
Remove outdated note
pjcozzi Jun 7, 2016
149747c
Remove outdated note
pjcozzi Jun 7, 2016
89c08f8
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 7, 2016
87a2793
Improve accessor min/max length wording
pjcozzi Jun 7, 2016
8a7d606
Draft of uint32 support
pjcozzi Jun 7, 2016
031b2bd
Clarify when a technique parameter can be an array
pjcozzi Jun 7, 2016
6599b43
Rename webglExtensionsUsed to glExtensionsUsed
pjcozzi Jun 7, 2016
a7ebf0f
Merge pull request #603 from lasalvavida/master
Jun 7, 2016
021e543
Merge pull request #603 from lasalvavida/master
Jun 7, 2016
9ae8481
Merge remote-tracking branch 'origin/master' into 1.0.1
pjcozzi Jun 8, 2016
2bee9e6
Clarify when technique.parameters.semantic is required
pjcozzi Jun 8, 2016
bcb3d06
Made decodeMin and decodeMax required
lasalvavida Jun 9, 2016
275d736
Fixed Cesium link
lasalvavida Jun 9, 2016
2eb2ff7
Merge pull request #616 from lasalvavida/upstream
pjcozzi Jun 10, 2016
4d6a7d4
'Three' should be 'Two'
lasalvavida Jun 10, 2016
c655454
Merge pull request #622 from lasalvavida/upstream
pjcozzi Jun 10, 2016
ff148f7
Updated to gltfOverview 0.2.0
javagl Jun 13, 2016
ca5ffb1
Merge pull request #623 from javagl/master
pjcozzi Jun 13, 2016
d81bbb7
Renamed BrainStem, added README and README tweaks for the other models
lasalvavida Jun 15, 2016
f548bda
Merge pull request #626 from lasalvavida/sample-model-readme-fixes
pjcozzi Jun 15, 2016
4d10c03
Merge pull request #627 from lasalvavida/sample-model-readme-fixes
pjcozzi Jun 15, 2016
91dfea0
Merge pull request #614 from KhronosGroup/tweak-6
pjcozzi Jun 15, 2016
2af27e4
Merge pull request #619 from KhronosGroup/1.0.1-uint32
pjcozzi Jun 15, 2016
7c458fa
Clarification on min/max float precision
lexaknyazev Jun 17, 2016
71b03f5
Enforce double-precision
lexaknyazev Jun 21, 2016
4791b41
Merge pull request #628 from lexaknyazev/1.0.1-floats
pjcozzi Jun 23, 2016
0466e36
Removed "text" form buffer.type. See #629.
lexaknyazev Jun 23, 2016
dbf867d
Merge pull request #630 from lexaknyazev/1.0.1-buffer.type
pjcozzi Jun 23, 2016
af319b1
Clarify usage of buffer.type
lexaknyazev Jun 23, 2016
ff0e5db
Merge pull request #631 from lexaknyazev/1.0.1-buffer.type-2
pjcozzi Jun 23, 2016
42282a1
Check for unbound textures
lasalvavida Jul 1, 2016
fd352d1
Added osm2cesium to list of converters
pjcozzi Jul 5, 2016
5e64dc7
Merge pull request #637 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jul 5, 2016
97708a6
Merge pull request #636 from lasalvavida/unbound-textures
Jul 5, 2016
5ecde18
fixed schema for #639
lexaknyazev Jul 7, 2016
d2b9165
change spec for #639
lexaknyazev Jul 7, 2016
bf02c0d
Add notes about required fields and undefined material
lexaknyazev Jul 8, 2016
fa56b36
small fixes for #624, add skin attributes definitions from glTF Overview
lexaknyazev Jul 8, 2016
df7da02
Merge pull request #644 from lexaknyazev/skinning-1.0
pjcozzi Jul 8, 2016
8616871
Merge pull request #642 from lexaknyazev/req-dict
pjcozzi Jul 8, 2016
7008055
small fixes for #624, add skin attributes definitions from glTF Overview
lexaknyazev Jul 8, 2016
60852b5
1.0.1 fixes for #624
lexaknyazev Jul 9, 2016
c6ce848
enforce array form for TEXCOORD and COLOR
lexaknyazev Jul 9, 2016
aaa6b35
Merge pull request #649 from lexaknyazev/texcoord-1.0.1
pjcozzi Jul 10, 2016
6a1cc1c
Fix MIME type
pjcozzi Jul 13, 2016
6155a1e
Merge pull request #651 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jul 13, 2016
5795406
Merge pull request #647 from lexaknyazev/skinning-1.0.1
pjcozzi Jul 13, 2016
6cbf784
Tweak wording
pjcozzi Jul 13, 2016
6311a38
Wording tweak
pjcozzi Jul 13, 2016
ddd4bce
Tweak
pjcozzi Jul 13, 2016
3c6d14e
Added glTF Validator to list of tools
pjcozzi Jul 22, 2016
719a5a5
Merge pull request #660 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jul 22, 2016
4c83651
Added nvpro-pipeline to C++ section
pjcozzi Jul 27, 2016
665949c
Merge pull request #661 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jul 27, 2016
645b496
Added links to glTF talks from SIGGRAPH 2016
pjcozzi Jul 29, 2016
415b0de
Merge pull request #662 from KhronosGroup/pjcozzi-patch-2
pjcozzi Jul 29, 2016
a0bc9ce
Rename OBJ2GLTF to obj2gltf
pjcozzi Aug 5, 2016
b6109ac
Added link to "Using Quantization with 3D Models" article
pjcozzi Aug 8, 2016
6dce3bc
Add date
pjcozzi Aug 8, 2016
cd7ad27
Merge pull request #675 from KhronosGroup/pjcozzi-patch-2
pjcozzi Aug 8, 2016
620cf05
Add links to WEB3D_quantized_attributes extension
pjcozzi Aug 8, 2016
76117b1
Add link to "Using Quantization with 3D Models" article
pjcozzi Aug 8, 2016
72b2daf
Added "PBR in glTF: Current State" slides
pjcozzi Aug 8, 2016
1f51df9
Merge pull request #677 from KhronosGroup/pjcozzi-patch-3
pjcozzi Aug 8, 2016
fbb3cd0
Merge pull request #676 from KhronosGroup/pjcozzi-patch-2
pjcozzi Aug 9, 2016
9ce1452
Merge pull request #657 from skrat/mssing-cstring-include
pjcozzi Aug 10, 2016
5da089b
Added Cinder WIP
pjcozzi Aug 10, 2016
d7c38b2
Merge pull request #679 from KhronosGroup/pjcozzi-patch-2
pjcozzi Aug 10, 2016
1b8e85f
Merge pull request #680 from lasalvavida/box-without-indices
pjcozzi Aug 10, 2016
1a75b70
remove scissor, see #668
lexaknyazev Aug 11, 2016
1ecebbb
Add drag and drop OBJ converter
pjcozzi Aug 15, 2016
4c359d6
Merge pull request #682 from KhronosGroup/pjcozzi-patch-2
pjcozzi Aug 15, 2016
732a5ba
Merge pull request #681 from lexaknyazev/remove-scissor
pjcozzi Aug 15, 2016
9cbb442
Corrects animations by modifying the node hierarchy
lasalvavida Aug 16, 2016
8a179e1
Merge branch 'master' of github.com:KhronosGroup/glTF into fix-animat…
lasalvavida Aug 16, 2016
87ffe3d
Removed rapidjson submodule regression
lasalvavida Aug 16, 2016
1fd98dc
Added GLBoost to README.md
pjcozzi Aug 19, 2016
9371175
Merge pull request #686 from KhronosGroup/pjcozzi-patch-1
pjcozzi Aug 19, 2016
c6cb7b6
Add xml3d.js to webgl engines supporting glTF
ksons Aug 20, 2016
08bbe3d
Merge pull request #687 from ksons/patch-2
pjcozzi Aug 20, 2016
59211ea
Added links to Java glTF libraries
javagl Aug 22, 2016
0a21529
Merge pull request #688 from javagl/master
pjcozzi Aug 22, 2016
0739138
Tweak wording
pjcozzi Aug 22, 2016
6453b51
Rename scene to content in Binary glTF extension spec
pjcozzi Aug 22, 2016
7987e06
Merge master to 1.0.1
pjcozzi Aug 22, 2016
298e366
Merge pull request #689 from KhronosGroup/binary-wording
pjcozzi Aug 23, 2016
0ab4992
make technique.parameter always array, see #664
lexaknyazev Aug 24, 2016
233fd03
Add accessor.normalized
lexaknyazev Aug 24, 2016
887125b
Add clarification on texture origin.
lexaknyazev Aug 24, 2016
3c847ac
Merge pull request #692 from lexaknyazev/texture-origin
pjcozzi Aug 26, 2016
2fda28e
Merge pull request #691 from lexaknyazev/normalized
pjcozzi Aug 26, 2016
55fa5d7
Merge pull request #690 from lexaknyazev/parameter-value
pjcozzi Aug 26, 2016
5d9381e
Merge pull request #684 from lasalvavida/fix-animations
Sep 6, 2016
8b4185e
clarify normalized usage
lexaknyazev Sep 8, 2016
8a17a73
align blendColor and depthRange parameters with WebGL spec
lexaknyazev Sep 8, 2016
48ea62a
Remove obsolete "count" property from animations example
lexaknyazev Sep 8, 2016
5e58373
Drop revision number from profile.version
lexaknyazev Sep 9, 2016
5779e3e
Merge pull request #706 from lexaknyazev/normalized-fix
pjcozzi Sep 9, 2016
a99491f
Merge pull request #707 from lexaknyazev/parameter-functions-fix
pjcozzi Sep 9, 2016
ff226f0
Merge pull request #708 from lexaknyazev/animations-readme-fix
pjcozzi Sep 9, 2016
ccd9732
Merge pull request #709 from lexaknyazev/asset-profile-version-fix
pjcozzi Sep 9, 2016
241c022
Clarify TRS order
lexaknyazev Sep 10, 2016
ae17660
Merge pull request #711 from lexaknyazev/node-trs-fix
pjcozzi Sep 10, 2016
6c5c237
animation changes
lexaknyazev Sep 12, 2016
f65ef87
Added gltf2glb to README.md
pjcozzi Sep 13, 2016
ae69ad5
Merge pull request #715 from KhronosGroup/pjcozzi-patch-1
pjcozzi Sep 13, 2016
2239b6b
Merge pull request #713 from KhronosGroup/master
pjcozzi Sep 13, 2016
61797e9
Fixed compile issue when linking into another exe.
Sep 15, 2016
c476660
Merge pull request #718 from KhronosGroup/linux-fix
pjcozzi Sep 15, 2016
1bf1cc0
Merge branch '1.0.1' into animations-fix
lexaknyazev Sep 16, 2016
638d044
mandate strictly increasing values, add STEP interpolation
lexaknyazev Sep 16, 2016
7c7424e
update readme reference to reflect schema changes
lexaknyazev Sep 17, 2016
e9321a4
update readme description and examples
lexaknyazev Sep 17, 2016
ea31adf
little editing
lexaknyazev Sep 17, 2016
fff51ca
extensionsRequired property, small edits
lexaknyazev Sep 17, 2016
5a67265
fix example
lexaknyazev Sep 17, 2016
624f15b
add comma
lexaknyazev Sep 17, 2016
d61850c
Merge pull request #712 from lexaknyazev/animations-fix
pjcozzi Sep 17, 2016
e658168
Merge pull request #720 from lexaknyazev/required-extensions
pjcozzi Sep 17, 2016
5d2997c
add more extensions docs
lexaknyazev Sep 18, 2016
71af824
Merge pull request #719 from lasalvavida/overwrite-uid
Sep 19, 2016
f301b37
infinite projection matrix support
lexaknyazev Sep 24, 2016
927756e
scale images
lexaknyazev Sep 24, 2016
04d9f56
add a link to ToC
lexaknyazev Sep 24, 2016
6767716
Merge pull request #721 from lexaknyazev/more-extension-docs
pjcozzi Sep 24, 2016
02712dc
Fix some broken paths in the sample model loaders.
emackey Sep 26, 2016
d1d855e
Merge pull request #729 from emackey/demo-models-path-fix
pjcozzi Sep 26, 2016
a83ed51
Add link to Stack Overflow
pjcozzi Sep 26, 2016
a551adf
Merge pull request #730 from KhronosGroup/pjcozzi-patch-1
pjcozzi Sep 26, 2016
fd8caae
Merge pull request #732 from lasalvavida/fix-animation-translation
Sep 30, 2016
74f5cb6
Point people towards the active THREE.js GLTFLoader.js and deprecate …
richtr Oct 7, 2016
5f4cf4a
Added link to @cx20's awesome glTF comparison.
emackey Oct 8, 2016
5c702aa
Merge pull request #741 from emackey/compare-loaders
pjcozzi Oct 12, 2016
b707189
Tweak README.md
pjcozzi Oct 12, 2016
6f17eaa
Merge pull request #740 from richtr/feature/move-threejs-dev
pjcozzi Oct 12, 2016
63c393a
Fixed ordering of blendFuncSeparate
lilleyse Oct 15, 2016
ea55e46
Fixed other areas
lilleyse Oct 15, 2016
902bc75
Merge pull request #747 from lilleyse/blendFuncSeparate-fix
pjcozzi Oct 15, 2016
aa778b1
Merge pull request #727 from lexaknyazev/infinite-projection
pjcozzi Oct 17, 2016
7b7f800
Merge pull request #752 from KhronosGroup/master
pjcozzi Oct 18, 2016
576ab78
Fix JSON schema for glExtensionsUsed
lexaknyazev Oct 27, 2016
d0d250e
Fix example JSON for glExtensionsUsed
lexaknyazev Oct 27, 2016
f74f468
Merge branch '1.1' into master-test
lexaknyazev Nov 28, 2016
58eeab2
Start of 1.1 editing
lexaknyazev Nov 28, 2016
4ce65e3
Update snippets, add TRS and coord system notes from 1.0, fix default…
lexaknyazev Nov 28, 2016
e779b1d
Update JSON-Schemas to v4
lexaknyazev Nov 30, 2016
5f4f986
Fix errors in examples
lexaknyazev Nov 30, 2016
bf92a3a
Add dependency for material.values
lexaknyazev Nov 30, 2016
00117ba
Sync README.md with schemas
lexaknyazev Nov 30, 2016
13bba7d
Move base properties to end
lexaknyazev Nov 30, 2016
8d9b103
Add link to registry
lexaknyazev Nov 30, 2016
b983c67
Update date
lexaknyazev Nov 30, 2016
2668e5e
Fix spacing
lexaknyazev Nov 30, 2016
4d8eaf0
Tweak heading
pjcozzi Nov 30, 2016
cbc076d
Direct link to 1.1 spec
pjcozzi Nov 30, 2016
ba94e2d
Wording tweak
pjcozzi Nov 30, 2016
7911ba2
Small fix to inheritance.
xelatihy Nov 30, 2016
0413744
Fix inheritance in material.values
lexaknyazev Dec 2, 2016
3604243
Fix typo
lexaknyazev Dec 5, 2016
18545ba
Add #789 clarification to spec
lexaknyazev Dec 7, 2016
adfd5d4
Remove buffer.type
lexaknyazev Dec 18, 2016
2113534
Re-edit of accessor alignment reqs
lexaknyazev Jan 21, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ glTF™ (GL Transmission Format) is a royalty-free specification for the efficie

## Specification

* [glTF Specification, 1.0](specification/1.0/README.md)
* [glTF Specification, 1.1](specification/1.1/README.md) (or [all specification versions](specification/README.md))
* [glTF Extension Registry](extensions/README.md)

Please provide feedback by submitting [issues](https://github.com/KhronosGroup/glTF/issues).
Expand Down
53 changes: 34 additions & 19 deletions extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,41 +17,52 @@ _Draft Khronos extensions are not ratified yet._

# About glTF Extensions

glTF extensions extend the base glTF model format. Extensions can introduce new properties (including properties that reference external data, and the extension can define the format of those data), new parameter semantics, reserved ids, and new container formats. Extensions are written against a specific version of glTF and may be promoted to core glTF in a later glTF version.
glTF extensions extend the base glTF model format. Extensions can introduce new properties (including properties that reference external data, and the extension can define the format of those data), new parameter semantics, reserved IDs, and new container formats. Extensions are written against a specific version of glTF and may be promoted to core glTF in a later glTF version.

## Extension Mechanics

All glTF object properties (see [glTFProperty.schema.json](https://github.com/KhronosGroup/glTF/blob/master/specification/schema/glTFProperty.schema.json)) have an optional `extensions` object property that can contain new extension-specific properties. This allows extensions to extend any part of glTF, including geometry, materials, animations, etc. Extensions can also introduce new parameter semantics, reserved ids, and new formats containing glTF.
All glTF object properties (see [glTFProperty.schema.json](https://github.com/KhronosGroup/glTF/blob/master/specification/schema/glTFProperty.schema.json)) have an optional `extensions` object property that can contain new extension-specific properties. This allows extensions to extend any part of glTF, including geometry, materials, animations, etc. Extensions can also introduce new parameter semantics, reserved IDs, and new formats containing glTF.

Extensions can't remove existing glTF properties or redefine existing glTF properties to mean something else.

Examples include:
* **New properties**: `KHR_binary_glTF` introduces a `bufferView` property for shaders, e.g.,
```javascript
"a_shader" : {
"extensions" : {
"binary_glTF" : {
"bufferView" : // ...
```json
{
"shaders": {
"a_shader": {
"extensions": {
"KHR_binary_glTF": {
"bufferView": "a_shader_bufferView"
}
}
}
}
}
```
* **New parameter semantics**: `CESIUM_RTC` introduces the `CESIUM_RTC_MODELVIEW` semantic.
* **Reserved ids**: `KHR_binary_glTF` introduces an explicitly named `buffer` called `binary_glTF`.
* **Reserved IDs**: `KHR_binary_glTF` introduces an explicitly named `buffer` called `binary_glTF`.
* **New container formats**: `KHR_binary_glTF` introduces a binary format that contains the glTF JSON and geometry, textures, etc.

All extensions used in a model are listed as strings in the top-level `extensionsUsed` array, e.g.,
```javascript
"extensionsUsed" : [
"KHR_binary_glTF"
]
All extensions used in a model are listed as strings in the top-level `extensionsUsed` array; all _required_ extensions are listed as strings in the top-level `extensionsRequired` array, e.g.,
```json
{
"extensionsUsed": [
"KHR_binary_glTF", "VENDOR_physics"
],
"extensionsRequired": [
"KHR_binary_glTF"
]
}
```
This allows an engine to quickly determine if it supports the extensions needed to render the model without inspecting the the `extensions` property of all objects.

## Creating Extensions

To create a new extension, use the [extension template](Template.md) and open a pull request into this repo. Make sure to add the extension to the glTF Extension Registry (top of this file).

If lack of extension support prevents proper geometry loading, extension specification _must_ state that (and such extension must be mentioned in `extensionsRequired` top-level glTF property).

Extensions start as a vendor extension, then can become a multi-vendor extensions if there are multiple implementations, and can become a ratified Khronos extension (the multi-vendor extension is an optional step).

## Promoting Extensions
Expand Down Expand Up @@ -83,13 +94,17 @@ In addition to extensions, the `extras` object can also be used to extend glTF.

All glTF object properties allow adding new properties to an `extras` object sub-property, e.g.,
```json
"a-vertex-shader-id" : {
"name": "user-defined-name",
"uri" : "vertex-shader.glsl",
"type": 35633,
"extras" : {
"Application specific" : "The extra object can contain any properties."
{
"shaders": {
"a-vertex-shader-id": {
"name": "user-defined-name",
"uri" : "vertex-shader.glsl",
"type": 35633,
"extras" : {
"precompiled_binary" : "path_to_precompiled_shader"
}
}
}
}
```
This enables glTF models to contain application-specific properties without creating a full glTF extension. This may be preferred for niche use cases where an extension would not be widely adopted.
Loading