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 will be 2.0! #817

Closed
pjcozzi opened this Issue Jan 17, 2017 · 16 comments

Comments

Projects
None yet
5 participants
@pjcozzi
Member

pjcozzi commented Jan 17, 2017

We started glTF 1.1 as a bug fix update to glTF 1.0. In parallel, @lexaknyazev developed the glTF Validator, which helped find corner cases that the 1.1 spec has tightened up.

Also in parallel, something big happened: @mlimper and a large community have nearly finalized the glTF PBR extension. We have also decided that the metallic-roughness PBR material model will be in the core glTF spec (specular-glossiness will remain in the extension). There is so much spec and implementation progress here that we do not want to hold it back, so PBR will be part of the next glTF version, now named 2.0 to signify the huge advancement with PBR. We believe PBR in glTF will help the industry move to PBR given the carefully defined spec and emerging ecosystem of tools, runtimes, and sample code.

In addition, we want glTF 2.0 to be a stable base for the future and to support practical runtime implementations for many graphics APIs, so we are including a few other changes to improve consistency, API-neutrality, or performance. These are:

  • Moving GLSL to an extension since API-neutral PBR will be in the core spec. #733
  • Adding image.bufferView so that textures/geometry/keyframes can be stored in one binary blob if desired, and that the KHR_binary_glTF extension can be replaced with core glTF spec. image.uri will still be supported.
  • Moving lights in the KHR_common_materials extension to a separate light extension that can be used by both PBR and common_materials. Engines can, of course, use their own lights as well.
  • Replacing top-level glTF object properties that are currently accessed by property name, e.g., the accessors object, with arrays that are accessed by index. This allows faster parsing in JavaScript and native loaders. We'll post performance numbers in this repo soon. #831
  • Adding morph targets, e.g., for facial animation. This is not a breaking change. #210, #820

It is exciting to see the industry move forward together with this next version of glTF. @cx20 is tracking the progress of several engine adoptions: three.js, Babylon.js, and GLBoost. Updates to COLLADA2GLTF, gltf-pipeline, and Cesium are also imminent. @javagl has also prepared a glTF tutorial series including simple sample models.

There's lots of implementation work towards glTF PBR: the WebGL reference implementation by @moneimne, Babylon.js by @bghgary and @sbtron, x3dom by @mlimper, OSGJS/Sketchfab by @cedricpinson, and the Laugh Engine (Vulkan) by @jian-ru.

Next up, we'll make the 1.1 to 2.0 renames and prepare the spec for Khronos ratification. As always, please provide your feedback and let us know what you are building with glTF!

@pjcozzi pjcozzi added the 2.0 label Jan 17, 2017

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jan 17, 2017

Member

Also, here's the:

  • Overview of spec changes made so far, #605
  • Draft spec, #784
Member

pjcozzi commented Jan 17, 2017

Also, here's the:

  • Overview of spec changes made so far, #605
  • Draft spec, #784
@xelatihy

This comment has been minimized.

Show comment
Hide comment
@xelatihy

xelatihy Jan 17, 2017

Contributor

Very exciting work!

Are these schemas already available for the new glTF 2.0 (and extensions)?

Contributor

xelatihy commented Jan 17, 2017

Very exciting work!

Are these schemas already available for the new glTF 2.0 (and extensions)?

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jan 17, 2017

Member

Things are nearly complete. The spec is in #784. The PBR extension is in #643 (note that basically the metallic-roughness section will be cut-and-pasted into the core spec).

Member

pjcozzi commented Jan 17, 2017

Things are nearly complete. The spec is in #784. The PBR extension is in #643 (note that basically the metallic-roughness section will be cut-and-pasted into the core spec).

@xelatihy

This comment has been minimized.

Show comment
Hide comment
@xelatihy

xelatihy Jan 17, 2017

Contributor

Sounds good. I have manu large models in glTF 1.1 (I guess 2.0). I will publish them soon on my site and plan ti publish more models in the coming months. Adding PBR next.

Contributor

xelatihy commented Jan 17, 2017

Sounds good. I have manu large models in glTF 1.1 (I guess 2.0). I will publish them soon on my site and plan ti publish more models in the coming months. Adding PBR next.

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jan 17, 2017

Member

@xelatihy sounds great. When ready, we would be happy to add a link to your models from here: https://github.com/KhronosGroup/glTF-Sample-Models#other-gltf-sample-models. Please open a pull request.

Member

pjcozzi commented Jan 17, 2017

@xelatihy sounds great. When ready, we would be happy to add a link to your models from here: https://github.com/KhronosGroup/glTF-Sample-Models#other-gltf-sample-models. Please open a pull request.

@cx20

This comment has been minimized.

Show comment
Hide comment
@cx20

cx20 Jan 19, 2017

@pjcozzi Does renaming from glTF 1.1 to 2.0 mean that 1.1 is missing?

Do the following samples also change from 1.1 to 2.0?
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/1.1

cx20 commented Jan 19, 2017

@pjcozzi Does renaming from glTF 1.1 to 2.0 mean that 1.1 is missing?

Do the following samples also change from 1.1 to 2.0?
https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/1.1

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jan 21, 2017

Member

@cx20 yes, everything will change to 2.0: the spec, the sample models, tools, tutorials, etc. So there will be just glTF 1.0 and glTF 2.0, not 1.1.

Member

pjcozzi commented Jan 21, 2017

@cx20 yes, everything will change to 2.0: the spec, the sample models, tools, tutorials, etc. So there will be just glTF 1.0 and glTF 2.0, not 1.1.

@cx20

This comment has been minimized.

Show comment
Hide comment
@cx20

cx20 Jan 22, 2017

@pjcozzi thanks, I understand.

cx20 commented Jan 22, 2017

@pjcozzi thanks, I understand.

@lexaknyazev

This comment has been minimized.

Show comment
Hide comment
@lexaknyazev

lexaknyazev Feb 2, 2017

Member

First 2.0 draft #826.

Member

lexaknyazev commented Feb 2, 2017

First 2.0 draft #826.

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Feb 3, 2017

Member

@lexaknyazev can you please check the boxes in the tasklist at the top of this issue if they are already included in #826? I checked the ones I know for sure.

Member

pjcozzi commented Feb 3, 2017

@lexaknyazev can you please check the boxes in the tasklist at the top of this issue if they are already included in #826? I checked the ones I know for sure.

@javagl

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Feb 3, 2017

Contributor

How will the extensions be updated? E.g. for KHR_binary_glTF:

Binary glTF introduces a buffer with id equal to "binary_glTF"

Will there be a KHR_binary_glTF_2 where the buffer is e.g. defined to have an index (and maybe always have index 0)?

Will the removal of lights from KHR_materials_common be handled by creating a (new!) KHR_materials and a new KHR_lights?

Contributor

javagl commented Feb 3, 2017

How will the extensions be updated? E.g. for KHR_binary_glTF:

Binary glTF introduces a buffer with id equal to "binary_glTF"

Will there be a KHR_binary_glTF_2 where the buffer is e.g. defined to have an index (and maybe always have index 0)?

Will the removal of lights from KHR_materials_common be handled by creating a (new!) KHR_materials and a new KHR_lights?

@lexaknyazev

This comment has been minimized.

Show comment
Hide comment
@lexaknyazev

lexaknyazev Feb 3, 2017

Member

@javagl

Will there be a KHR_binary_glTF_2 where the buffer is e.g. defined to have an index (and maybe always have index 0)?

See #828

Will the removal of lights from KHR_materials_common be handled by creating a (new!) KHR_materials and a new KHR_lights?

KHR_materials_common hasn't been ratified yet, so it will be updated to not include lights.
They will go to a new KHR_lights. I'll push drafts soon.

Member

lexaknyazev commented Feb 3, 2017

@javagl

Will there be a KHR_binary_glTF_2 where the buffer is e.g. defined to have an index (and maybe always have index 0)?

See #828

Will the removal of lights from KHR_materials_common be handled by creating a (new!) KHR_materials and a new KHR_lights?

KHR_materials_common hasn't been ratified yet, so it will be updated to not include lights.
They will go to a new KHR_lights. I'll push drafts soon.

@cx20

This comment has been minimized.

Show comment
Hide comment
@cx20

cx20 Feb 5, 2017

I have created a branch to test the glTF 2.0 models.
https://github.com/cx20/gltf-test/tree/2.0

cx20 commented Feb 5, 2017

I have created a branch to test the glTF 2.0 models.
https://github.com/cx20/gltf-test/tree/2.0

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Feb 5, 2017

Member

Very nice, thanks @cx20. We will soon see those red x's turn to green checkboxes!

Member

pjcozzi commented Feb 5, 2017

Very nice, thanks @cx20. We will soon see those red x's turn to green checkboxes!

@javagl

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Feb 8, 2017

Contributor

Not sure whether it fits here, but there's another API appearing at the horizon: https://www.w3.org/community/blog/2017/02/07/proposed-group-gpu-for-the-web-community-group/ ( https://webkit.org/wp-content/uploads/webgpu-api-proposal.html ). Something to have an eye on for glTF 3.0 ;-)

Contributor

javagl commented Feb 8, 2017

Not sure whether it fits here, but there's another API appearing at the horizon: https://www.w3.org/community/blog/2017/02/07/proposed-group-gpu-for-the-web-community-group/ ( https://webkit.org/wp-content/uploads/webgpu-api-proposal.html ). Something to have an eye on for glTF 3.0 ;-)

@donmccurdy donmccurdy referenced this issue Feb 14, 2017

Closed

Support for glTF 2.0 #10806

11 of 12 tasks complete
@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Sep 26, 2017

Member

Closing, no action here.

Member

pjcozzi commented Sep 26, 2017

Closing, no action here.

@pjcozzi pjcozzi closed this Sep 26, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment