First minor wording pass for content_gltf#488
First minor wording pass for content_gltf#488ptrgags merged 10 commits intoCesiumGS:3d-tiles-nextfrom
Conversation
|
@donmccurdy could you do the first review pass? |
|
Good wording changes! Replies to the bullet points inline:
I'm undecided on this one. In glTF we try to use terms that wouldn't need to change if the extension were merged into the core specification, i.e. if the extension wrapper did not exist. So e.g. for KHR_materials_clearcoat, every property begins with the term "clearcoat". But I don't know if that same philosophy is useful for 3D Tiles.
We leaned pretty heavily on the term "properties" in
I slightly prefer the word "may" as well, but either is OK with me.
Agreed, both changes improve the sentence. (reference) 👍
I can't quite tell how |
| ## Extension JSON | ||
|
|
||
| `3DTILES_content_gltf` is a property of the top-level `extensions` object and contains two optional properties: | ||
| With this extension, the tile content may be a glTF asset. In order to allow runtime engines to determine compatibility before loading the content, any extensions that are required by the glTF asset must be declared in the `3DTILES_content_gltf` object. This is a property of the top-level tileset `extensions` object and contains two optional properties: |
There was a problem hiding this comment.
| With this extension, the tile content may be a glTF asset. In order to allow runtime engines to determine compatibility before loading the content, any extensions that are required by the glTF asset must be declared in the `3DTILES_content_gltf` object. This is a property of the top-level tileset `extensions` object and contains two optional properties: | |
| With this extension, the tile content may be a glTF asset. In order to allow runtime engines to determine compatibility before loading the content, any extensions that are required by the glTF asset must be declared in the `3DTILES_content_gltf` object. This is a property of the top-level tileset `extensions` object and contains two properties: |
Found the combination of "must be declared" and "two optional properties" confusing at first – if needed we could add another sentence saying that when no extensions are required or used, the respective properties should be omitted?
|
|
||
| * [`EXT_mesh_gpu_instancing`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing) may be used to instance glTF nodes. The extension supports per-instance translations, rotations, and scales. | ||
| * `RTC_CENTER` can instead be stored in a glTF node translation. | ||
| * [`EXT_mesh_gpu_instancing`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing) may be used to instance glTF assets. The extension supports per-instance translations, rotations, and scales. |
There was a problem hiding this comment.
| * [`EXT_mesh_gpu_instancing`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing) may be used to instance glTF assets. The extension supports per-instance translations, rotations, and scales. | |
| * glTF 2.0 supports reuse of the same mesh at multiple translations, rotations, and scales. To optimize reused meshes for more efficient GPU instancing, [`EXT_mesh_gpu_instancing`](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/EXT_mesh_gpu_instancing) may be used. |
In reviewing EXT_mesh_gpu_instancing there was some ambiguity around the term "instancing": some other software uses the term "instancing" to mean any kind of data reuse. In this appendix we disambiguate between "data instancing" and "GPU instancing".
I think "glTF asset" is the right term for the paragraph above, but in this case it might be more correct to say "mesh" since the extension does not instance the entire asset.
I wouldn't be opposed to changing it back as I've been confused too when looking at tilesets that use this extension. If everyone else is good with that we should make the change. Originally we thought |
|
Meta comments:
|
|
Maybe
I think it's a bit unusual for the spec to include what looks (to me at least) like a migration guide. But if you think the question will come up a lot, that does seem like a useful thing to have in writing for sure. Could also make for a good technical blog post at some point.
I'd be in favor of omitting the markdown generated from the property reference, at least until there's a good way to +/- instantly rebuild that without manual work. I think the inline links to schema files are reasonably clear in CesiumGS/glTF#21, would be curious if that reads way the same to others. |
|
The minor wording comments have been integrated. I hesitated a bit regarding the
The first one is clear. The second one is debatable...
To achieve some consistency here, I aligned the wording of "per-point metadata and multi-point metadata" to "per-point properties and multi-point features", as it seems to be called in https://github.com/donmccurdy/glTF/blob/ext-feature-metadata-v2.9/extensions/2.0/Vendor/EXT_mesh_features/README.md#examples
To my understanding, this is the case - but with the disclaimer that I'd have to think carefully (and re-read) about the roles of skeleton hierarchies. I slightly elaborated that statement, hoping that it adds clarification.
Maybe, one day, we'll have a
This seems to be a general question. I think that at least the extension specs should be "consistent", in that they either all contain that reference, or none of them. And I think that they currently all contain that reference, so I think it's OK to leave it there. (It's far easier to remove that in all of them, than to add it back later...).
Instead of plainly removing it, one option could be to move that into some
? |
The extensions must be the same ones as listed in the given glTF asset.
|
@ptrgags The schema reference has been removed, and the appendix is moved to a dedicated document (I hope the name |
I'm not sure I understand the intended use of the
👍
See earlier comment – I don't think we need to spend too much time worrying about hypotheticals like COLLADA or merging the extension into the core spec, but I would like to understand the current use of
We addressed both of these during today's call, right? Or let me know if not! |
|
|
||
| [Batched 3D Model](../../specification/TileFormats/Batched3DModel) is a wrapper around a binary glTF that includes additional information in its Feature Table and Batch Table. Batched 3D Model content can be converted into glTF content with the following changes: | ||
|
|
||
| * The `RTC_CENTER` can be added to the translation component of the root node of the glTF asset. |
There was a problem hiding this comment.
Maybe link to the section where RTC_CENTER is defined? https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel#coordinate-system
There was a problem hiding this comment.
There are some places where I thought that a link to the corresponding documentation could be helpful - and that literally (and figuratively) starts at the highest level, meaning that the first sentence could be "Written against the [3D Tiles 1.0 specification](link)."
If there is a geenral guideline like "Add links when a reference is mentioned for the first time", then I can take that into account in future review passes.
There was a problem hiding this comment.
@javagl hm yeah to some extent mentioning the 3D Tiles 1.0 specification is enough for most details
Though here with RTC_CENTER, this is a less obvious detail that a reader might miss in the main specification if they're not reading it carefully, so this link is for added clarity.
What were the decisions from the call? I wasn't able to make it today. |
|
Ah, let me summarize:
|
Co-authored-by: Peter Gagliardi <ptrgags@gmail.com>
Co-authored-by: Peter Gagliardi <ptrgags@gmail.com>
|
The links to the schema still have to be added. More generally, there may be other links that could be useful, as of the comment at #488 (comment) , but I'll start with the schema links and RTC_CENTER (a bit later today) |
ceb18a5 to
a27fe80
Compare
|
@javagl sorry for the delay. The changes look good, thanks! |
Renamed "glTF model" to "glTF asset", roughly inspired by EXT_feature_metadata deep dive glTF#4 (comment)
I tried to explain the "Why" before the "How" for using the
3DTILES_content_gltfstructure to declare the extensions that are used by the glTF asset. I found the naming a bit confusing at the first glance, and wonder why the name was changed fromgltfExtensionsUsedtoextensionsUsedin bc21c2c#diff-ca64f943dc5ef8ec5baabf371a7dffd2270adb6a64b4456fd98b8d87b43c0790 ...The "Comparison with Existing Tile Formats" section may need some polishing:
The links will have to be updated at some point
Some technical terms have to be reviewed to be consistent with other specs (e.g. "information" vs. "metadata" vs. "properties").
I actually started changing "to instance" to "to instantiate" (c.f. https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/Specification.adoc#374-instantiation ), but for the sake of consistency with the Instanced3DModel spec, did not do this, eventually.
Do we go all the way of using "may" as in https://www.rfc-editor.org/rfc/rfc2119.txt ? (Then, we could omit the word "can"...)
Not being a native English speaker, I can only say that I'd write "Batched 3D Model content can be converted into glTF content" instead of "Batched 3D Model content can converted to a glTF content", but that may also be wrong (or it may not matter at all). At least, I'm reasonably sure about the missing "be"...
I was tempted to rephrase the common statement
RTC_CENTERcan instead be stored in a glTF node translation.to
RTC_CENTERcan be added to the translation component of the root node of the glTF assetbut that may sound too convoluted...