-
Notifications
You must be signed in to change notification settings - Fork 7
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
Feature metadata extension (EXT_feature_metadata) #3
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lilleyse went through and pointed out a bunch of things that either need fixing or could use further discussion.
extensions/2.0/Vendor/EXT_feature_metadata/examples/texture-metadata.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/texture-metadata.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.schema.json
Outdated
Show resolved
Hide resolved
...0/Vendor/EXT_feature_metadata/schema/texture.EXT_feature_metadata.featureMapping.schema.json
Outdated
Show resolved
Hide resolved
...ons/2.0/Vendor/EXT_feature_metadata/schema/texture.EXT_feature_metadata.features.schema.json
Outdated
Show resolved
Hide resolved
...Vendor/EXT_feature_metadata/schema/primitive.EXT_feature_metadata.featureMapping.schema.json
Outdated
Show resolved
Hide resolved
...feature_metadata/schema/primitive.EXT_feature_metadata.featureMapping.featureIds.schema.json
Outdated
Show resolved
Hide resolved
...feature_metadata/schema/primitive.EXT_feature_metadata.featureMapping.featureIds.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/texture-metadata.gltf
Outdated
Show resolved
Hide resolved
@lilleyse I tweaked the metadata to the point that my NDVI/land cover example (see I also tweaked the existing examples to make them compliant with the schema. Other changes to the schema will take more thought, I'll get to work on those on Tuesday |
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.property.schema.json
Outdated
Show resolved
Hide resolved
@ptrgags I plan on checking out your comments tomorrow |
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
I created a point cloud vertex metadata example with several per-vertex properties. There's a Node.js script for generating the glTF. I can verify that the point cloud renders in Cesium, but that doesn't tell me much about whether the buffer is set up correctly without feature-metadata specific tools. |
extensions/2.0/Vendor/EXT_feature_metadata/examples/weather/weather.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/weather/weather.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/weather/weather.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/weather/weather.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/examples/microcosm/microcosm.gltf
Outdated
Show resolved
Hide resolved
@ptrgags aside from bug fixes are these the main schema changes?
|
extensions/2.0/Vendor/EXT_feature_metadata/examples/weather/weather.gltf
Outdated
Show resolved
Hide resolved
@lilleyse and I also discussed "should we support arrays of strings" -- we're leaning towards not doing this, because it might lead to allowing complicated cases like arrays of binary, arrays of arrays... |
Another discussion point @lilleyse and I had both in Slack and in a call: How should we align our bufferViews?
@baothientran would you have an opinion on this? |
Concerning padding: I had a Slack conversation with @baothientran today where we discussed this. We came to the conclusion that we should word the alignment requirements that "bufferViews must be aligned to a multiple of 8 bytes" This accomplishes a few things:
To reach this decision, we also talked about the following:
|
We should be explicit that this alignment is relative to the start of the glb, not the start of the buffer. Otherwise the bufferView might be misaligned by 4 bytes since GLB only requires 4-byte alignment for chunks. EDIT: this only applies if the buffer is embedded in the glb |
I talked with @lilleyse on Slack about one detail about the We decided it's best to put this as an implementation note in the spec. |
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.schema.json
Outdated
Show resolved
Hide resolved
A couple longer term things to think about: Bitfields...or are parallel arrays of Enums
"LAS_Point": {
"properties": {
"Classification": {
"componentType": "UINT8",
"enum": {
"0": "Created, never classified",
"1": "Unclassified",
"2": "Ground",
"255": "User defined"
}
}
}
} |
A client may also want to know the number of occurrences of each enum. But I think that would have to go in the feature collection property since it's specific to the dataset and doesn't belong in the class definition. This is helpful for knowing what enums are available for styling purposes. Same goes with |
09247af
to
a8a5ed9
Compare
|
@ptrgags I pushed some changes in a8a5ed9:
|
Another longer term consideration, maybe for @IanLilleyT: Time
|
Ah yes, I'll adjust that in the schema.
Ah whoops I had updated the schema and JSON but forgot to double check the buffer contents. And yeah I'll be focusing more on |
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureClass.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/schema/featureCollection.schema.json
Outdated
Show resolved
Hide resolved
922eda1
to
f767fb2
Compare
f767fb2
to
d03e0f7
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lilleyse just a few things
extensions/2.0/Vendor/EXT_feature_metadata/1.0.0/schema/statistics.class.property.schema.json
Outdated
Show resolved
Hide resolved
extensions/2.0/Vendor/EXT_feature_metadata/1.0.0/schema/enum.schema.json
Outdated
Show resolved
Hide resolved
@ptrgags updated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
spotted a couple missing commas
extensions/2.0/Vendor/EXT_feature_metadata/1.0.0/schema/featureTable.property.schema.json
Outdated
Show resolved
Hide resolved
…eTable.property.schema.json Co-authored-by: Peter Gagliardi <ptrgags@gmail.com>
Looks good, thanks @lilleyse! |
EDIT by @ptrgags: A lot has changed since this PR was first created. I'm rewriting this description.
This is an update to the first feature metadata draft in #1.
Direct link to the extension:
EXT_feature_metadata
This extension is now quite a bit slimmed down, as the metadata encoding format is nearly identical between this glTF extension and a related 3D Tiles extension,
3DTILES_metadata
. This common specification is the Cesium 3D Metadata Specification. This glTF extension simply references the common spec to explain the core concepts.