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

Comments

Projects
None yet
4 participants
@pjcozzi
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:

  • Removed indirection from animation: sampler now refers directly to accessors, #712
  • material.parameter.value and technique.parameter.value must be an array, #690
  • Node can have only one mesh #821
  • Top-level JSON objects are arrays now
  • Added reqs on JSON encoding
  • Added reqs on binary data alignment #802 (comment)

Additions:

  • Added accessor.normalized, #691, #706
  • Added "STEP" as valid animation.sampler.interpolation value, #712
  • Added glExtensionsUsed property and 5125 (UNSIGNED_INT) accessor.componentType value, #619
  • Added extensionsRequired property, #720, #721

Removals:

  • Removed revision number from profile.version, #709
  • Removed buffer.type, #786, #629
  • Removed technique.functions.scissor and removed 3089 (SCISSOR_TEST) as a valid value for technique.states.enable, #681
  • Techniques, programs, and shaders were moved out to KHR_technique_webgl extension.

Other edits:

  • asset is now required, #642
  • accessor.min and accessor.max are now required, #593, and clarified that the JSON value and binary data must be the same, #628.
  • Clarified animation.sampler and animation.channel restrictions, #712
  • buffer.byteLength and bufferView.byteLength are now required, #560.
  • skin.inverseBindMatrices is now optional, #461.
  • Attribute parameters can't have a value defined in the technique or parameter, #563 (comment).
  • Only TEXCOORD and COLOR attribute semantics can be written in the form [semantic]_[set_index], #563 (comment).
  • TEXCOORD and COLOR attribute semantics must be written in the form [semantic]_[set_index], e.g., just TEXCOORD should be TEXCOORD_0, and just COLOR should be COLOR_0, #649
  • camera.perspective.aspectRatio and camera.perspective.yfov must now be > 0, not >= 0, #563 (comment).
  • Application-specific parameter semantics must start with an underscore, e.g., _TEMPERATURE and _SIMULATION_TIME, #563 (comment).
  • Properties in technique.parameters must be defined in technique.uniforms or technique.attributes,
    #563 (comment).
  • technique.parameter.count can only be defined when the semantic is JOINTMATRIX or an application-specific semantic is used. It can never be defined for attribute parameters; only uniforms, d2f6945
  • technique.parameter.semantic is required when the parameter is an attribute, 28e113d
  • Mesh-only models are allowed, e.g., without materials, #642
  • Skeleton hierarchies (nodes containing jointName) must be separated from non-skeleton hierarchies., #647
  • technique.states.functions.blendColor and technique.states.functions.depthRange parameters now must match WebGL function min/max, #707

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

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

@pjcozzi pjcozzi referenced this issue Jun 10, 2016

Merged

Required min max #65

This was referenced Jul 9, 2016

This was referenced Sep 13, 2016

@lexaknyazev lexaknyazev changed the title from Spec changes from 1.0 to 1.0.1 to 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

First updates for glTF 1.1
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

@lasalvavida lasalvavida referenced this issue Dec 5, 2016

Closed

Update version #191

1 of 1 task complete
@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jan 3, 2017

Member

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

Member

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 referenced this issue Jan 17, 2017

Closed

glTF 1.1 will be 2.0! #817

4 of 5 tasks complete

@lexaknyazev lexaknyazev changed the title from Spec changes from 1.0 to 1.1 to Spec changes from 1.0 to 2.0 Feb 2, 2017

@lexaknyazev lexaknyazev referenced this issue Feb 2, 2017

Merged

glTF 2.0 draft #826

15 of 17 tasks complete

@pjcozzi pjcozzi referenced this issue Feb 13, 2017

Closed

glTF 2.0 #20

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Feb 23, 2017

Member

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

Member

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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Apr 10, 2017

Member

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

Member

pjcozzi commented Apr 10, 2017

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

@javagl

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Apr 15, 2017

Contributor

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.

  • The asset.profile and asset.premultipliedAlpha properties have been removed.
  • The byteStride property was moved from accessor to bufferView (#827 , #833 )
  • The animation.channel.target.id was renamed to animation.channel.target.node ( de1023f - I think this was raised as an issue originally, but have to look closer)
  • The skin.bindShapeMatrix has been removed. It is now assumed to be pre-multiplied with the mesh or the inverse bind matrices (#723, 6c41899)
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.

  • The asset.profile and asset.premultipliedAlpha properties have been removed.
  • The byteStride property was moved from accessor to bufferView (#827 , #833 )
  • The animation.channel.target.id was renamed to animation.channel.target.node ( de1023f - I think this was raised as an issue originally, but have to look closer)
  • The skin.bindShapeMatrix has been removed. It is now assumed to be pre-multiplied with the mesh or the inverse bind matrices (#723, 6c41899)
@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Apr 17, 2017

Member

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

Member

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 AnalyticalGraphicsInc/gltf-pipeline#191

@vsantosu

This comment has been minimized.

Show comment
Hide comment
@vsantosu

vsantosu Apr 17, 2017

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!

vsantosu commented Apr 17, 2017

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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Apr 17, 2017

Member

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

Member

pjcozzi commented Apr 17, 2017

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

@vsantosu

This comment has been minimized.

Show comment
Hide comment
@vsantosu

vsantosu Apr 17, 2017

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

vsantosu commented Apr 17, 2017

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

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Apr 18, 2017

Contributor

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.

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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Apr 18, 2017

Member

This all sounds great, @mastayoda and @javagl!

Member

pjcozzi commented Apr 18, 2017

This all sounds great, @mastayoda and @javagl!

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jun 7, 2017

Member

@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.

Member

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

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Jun 7, 2017

Contributor

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) )

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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jun 7, 2017

Member

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

Member

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

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Jun 15, 2017

Contributor

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, #593, and clarified that the JSON value and binary data must be the same, #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

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, #593, and clarified that the JSON value and binary data must be the same, #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

This comment has been minimized.

Show comment
Hide comment
@lexaknyazev

lexaknyazev Jun 15, 2017

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.
Member

lexaknyazev commented Jun 15, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Jun 19, 2017

Member

@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.

Member

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

This comment has been minimized.

Show comment
Hide comment
@javagl

javagl Sep 5, 2017

Contributor
  • 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)

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

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Sep 26, 2017

Member

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

Member

pjcozzi commented Sep 26, 2017

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

@pjcozzi pjcozzi closed this Sep 26, 2017

@pjcozzi

This comment has been minimized.

Show comment
Hide comment
@pjcozzi

pjcozzi Sep 26, 2017

Member

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

Member

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