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

Spec changes from 1.0 to 2.0 #605

Closed
pjcozzi opened this issue Jun 1, 2016 · 19 comments
Closed

Spec changes from 1.0 to 2.0 #605

pjcozzi opened this issue Jun 1, 2016 · 19 comments

Comments

@pjcozzi
Copy link
Member

pjcozzi commented Jun 1, 2016

This issue will be updated as we work on the 1.1 spec (also see the spec pull request, #784)

1.0.1/1.1 was renumbered to 2.0

JSON format changes:

Additions:

Removals:

Other edits:

For upcoming 2.0 changes, see issues labeled "2.0" and not labeled "resolved".

For all 2.0 issues, see issues labeled "2.0".

This was referenced Jul 9, 2016
This was referenced Sep 13, 2016
@lexaknyazev lexaknyazev changed the title Spec changes from 1.0 to 1.0.1 Spec changes from 1.0 to 1.1 Oct 12, 2016
javagl added a commit to javagl/gltfOverview that referenced this issue Oct 31, 2016
Changes as of KhronosGroup/glTF#605 :

- Removed "parameters" indirection from animation
- Added a few words about interpolation, including "STEP"
- Added "extensionsRequired" property
- Added accessor.min/max

Other changes:

- Changed version number to align with glTF version
- In KHR_binary_glTF changed "scene" to "content"
This was referenced Nov 30, 2016
@pjcozzi
Copy link
Member Author

pjcozzi commented Jan 3, 2017

@javagl moving this discussion to #806 to keep this issue focused on changes from 1.0 to 1.1.

@pjcozzi pjcozzi mentioned this issue Jan 17, 2017
5 tasks
@lexaknyazev lexaknyazev changed the title Spec changes from 1.0 to 1.1 Spec changes from 1.0 to 2.0 Feb 2, 2017
@lexaknyazev lexaknyazev mentioned this issue Feb 2, 2017
17 tasks
@pjcozzi
Copy link
Member Author

pjcozzi commented Feb 23, 2017

@lexaknyazev can you please make sure this is up-to-date for GDC next week...including as we make changes?

@pjcozzi
Copy link
Member Author

pjcozzi commented Apr 10, 2017

@lexaknyazev @bghgary @sbtron can you please update this 1.0 to 2.0 summary once the spec stabilizes?

@javagl
Copy link
Contributor

javagl commented Apr 15, 2017

Here are some points that I stumbled over while running a code generator (and 1.0-to-2.0 converter) against the 2.0 schema. I'm not sure whether they should be mentioned here (some of them may already be covered by links to issues where they are discussed), but I'll just drop this list here, and remove this comment later, if desired.

@pjcozzi
Copy link
Member Author

pjcozzi commented Apr 17, 2017

@javagl just curious, what 1.0 to 2.0 converter are you using? We would welcome your use and contributions to CesiumGS/gltf-pipeline#191

@vsantosu
Copy link

Hello @pjcozzi , is the AnalyticalGraphicsInc/gltf-pipeline tool generating gltf 2.0 already? I can't find clear information in the repo of which version is using. Thanks in advance!

@pjcozzi
Copy link
Member Author

pjcozzi commented Apr 17, 2017

@mastayoda there is initial work for a 1.0 to 2.0 conversion stage in gltf-pipeline in CesiumGS/gltf-pipeline#191, but it needs to be updated to include the latest 2.0 changes. Contributions are welcome!

@vsantosu
Copy link

Thanks so much @pjcozzi ! I will contribute for sure! Our company is trying to move away from the 3D mesh format mess and we are loving gltf so far. We will be jumping into the Blender export/import project soon to support 2.0

@javagl
Copy link
Contributor

javagl commented Apr 18, 2017

Referring to the comment above (i.e. to keep this issue focussed on the changes), only the short answer: I internally created a small converter in JglTF, for "1.0" -> "2.0+Technique" conversion, but there are still many open issues, and it's probably worthwhile to focus on the official glTF tools for contributions.

@pjcozzi
Copy link
Member Author

pjcozzi commented Apr 18, 2017

This all sounds great, @mastayoda and @javagl!

@pjcozzi
Copy link
Member Author

pjcozzi commented Jun 7, 2017

@javagl or @sbtron any chance one or both of you want to update this? Someone asked on gitter and this would also be useful for the COLLADA2GLTF/gltf-pipeline/obj2gltf/Cesium updates.

@javagl
Copy link
Contributor

javagl commented Jun 7, 2017

I can run the code generator on the latest (final) schema, and see whether the compiler complains at a certain point. This may not cover all changes (particularly not necessarily the semantics of changes), but could be a starter (in addition to my comment above #605 (comment) )

@pjcozzi
Copy link
Member Author

pjcozzi commented Jun 7, 2017

Sounds like a great start, @javagl! You are right that there will be many more subtle changes as well.

@javagl
Copy link
Contributor

javagl commented Jun 15, 2017

In the initial comment above, I don't see things like morph targets, PBR or the CATMULLROMSPLINE and CUBICSPLINE interpolation methods for animation.sampler being mentioned... (some of them may be "too big to be called a 'spec change'", though...)

After re-generating the code based on the latest schema, the following changes appeared in the diff (in addition to the points that I mentioned above... )

  • The animation.channel.target.node is now optional (to allow other targets in the future), as of 3d3db04

  • The point from the initial comment

    accessor.min and accessor.max are now required, Require accessor min/max for POSITION? #593, and clarified that the JSON value and binary data must be the same, Clarification on min/max float precision #628.

    is no longer true: They are optional now, as of 9de934a (I found some related discussions, but not where the decision was made, @lexaknyazev )

  • The maximum value of bufferView.byteStride has been changed from 255 to 252 in 6e6ae37 (not sure why...)

  • For camera.orthographic, the zfar value must be greater than znear, as of 0b3dbdd

  • node.children, scene.nodes, and skin.joints can't be empty when defined, as of f44c3bd

  • The components of the node.rotation quaternion must be in the range [-1,1], as of 75be81f

@lexaknyazev
Copy link
Member

@javagl

  • Accessors bounds are required only for positions (incl. morphs) and animation inputs. They don't make much sense for other cases.
  • byteStride must be divisible by 4. So it can't be 253, 254, or 255.

@pjcozzi
Copy link
Member Author

pjcozzi commented Jun 19, 2017

@javagl thanks for the input, you are very welcome to create a comprehensive 1.0 to 2.0 changelog as this one is clearly out-of-date.

@javagl
Copy link
Contributor

javagl commented Sep 5, 2017

  • bufferView.byteOffset and accessor.byteOffset are now optional, with 0 being the default.
  • texture.sampler is now optional

(Yes, the TODO of creating a change log is still implicitly pending)

@pjcozzi
Copy link
Member Author

pjcozzi commented Sep 26, 2017

I think it is OK to close this since there is no action here.

@pjcozzi pjcozzi closed this as completed Sep 26, 2017
@pjcozzi
Copy link
Member Author

pjcozzi commented Sep 26, 2017

@javagl a complete 1.0 to 2.0 list is still welcome if you have the bandwidth.

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

No branches or pull requests

4 participants