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

Revisions to the 3D Tiles Next extensions #630

Merged
merged 112 commits into from
Mar 8, 2022
Merged

Revisions to the 3D Tiles Next extensions #630

merged 112 commits into from
Mar 8, 2022

Conversation

lilleyse
Copy link
Contributor

@lilleyse lilleyse commented Feb 18, 2022

This PR includes revisions to many of the 3D Tiles Next extensions based on feedback since November.

  • Arrays are now distinct from the type system: #595
  • Added content metadata and subtree metadata to round out the granularities at which metadata can be provided
  • Added support for attribution (aka "credits" or "copyrights"). Attribution can be assigned at any granularity - including per-vertex or per-texel granularity - but will typically be assigned to tile contents or the tileset as a whole. #55
  • Added offset and scale to remap quantized metadata to different ranges
  • Added back default values for when property values are missing
  • Changed maximumLevel to availableLevels for consistency with subtreeLevels
  • Other schema changes. The full revision history can be found here.

There have also been changes to the glTF extensions that are closely associated with 3D Tiles Next. The EXT_mesh_features extension is now split into three separate extensions:

  • EXT_mesh_features that only defines the concept of feature IDs
  • EXT_structural_metadata that allows associating the features with metadata
  • EXT_instance_features that supports GPU instance feature IDs.

For the CesiumJS implementation of these changes, see https://github.com/CesiumGS/cesium/tree/extension-revisions

Direct links to specs:

To do:

@lilleyse
Copy link
Contributor Author

lilleyse commented Mar 7, 2022

@javagl This should be good for a final review and merge. There's a few remaining tasks that can be handled later.

@lilleyse lilleyse mentioned this pull request Mar 7, 2022
65 tasks

Optionally, this extension may be used with [`3DTILES_multiple_contents`](../3DTILES_multiple_contents), organizing tile contents into groups and providing metadata for each.

> **Disambiguation:** This extension does not interact with the [Batch Table](../../specification/TileFormats/BatchTable) feature used by the Batched 3D Model, Instanced 3D Model, and Point Cloud formats. Instead, glTF 2.0 assets may be referenced with [`3DTILES_content_gltf`](../3DTILES_content_gltf). Metadata within these assets is enabled with the glTF extension, [`EXT_mesh_features`](https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features) using the same schema format and conventions defined here.
> **Disambiguation:** This extension does not interact with the [Batch Table](../../specification/TileFormats/BatchTable) feature used by the Batched 3D Model, Instanced 3D Model, and Point Cloud formats. Instead, glTF 2.0 assets may be referenced with [`3DTILES_content_gltf`](../3DTILES_content_gltf). Metadata within these assets is enabled with the glTF extension, [`EXT_structural_metadata`](TODO) using the same schema format and conventions defined here.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a TODO in the link

### Content Feature Properties

_This section is non-normative_

Certain kinds of tile content may contain meaningful subcomponents ("features"), which may themselves be associated with metadata through more granular properties. Schemas may be embedded in these content types, but unused classes in a `3DTILES_metadata` schema are allowed, and may hint to an application that tile content might include entities instantiating those classes.

Assigning properties to tile content is not within the scope of this extension, but may be defined by other specifications. One such example is the glTF extension, [`EXT_mesh_features`](https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features), which supports definitions of conceptual features within geometry and textures, and associated metadata. glTF 2.0 assets with feature metadata may be included as tile contents with the [`3DTILES_content_gltf`](../3DTILES_content_gltf) extension.
Assigning properties to tile content is not within the scope of this extension, but may be defined by other specifications. One such example is the glTF extension, [`EXT_mesh_features`](https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_mesh_features), which supports definitions of conceptual features within geometry and textures, and [`EXT_structural_metadata`](TODO) for associated metadata. glTF 2.0 assets with feature metadata may be included as tile contents with the [`3DTILES_content_gltf`](../3DTILES_content_gltf) extension.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A TODO in the link

- [Numbers](#numbers-1)
- [Scalars](#scalars-1)
- [Vectors](#vectors-1)
- [Matrices](#matrices-1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Different indentation - intentional? (Also different number of # in linked-to section)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, that was not intentional. Fixed in f49d52e

Copy link
Contributor

@javagl javagl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each change in this PR should already have been reviewed via the PR that went into the branch that this PR is based on. So I only did a quick ("final") pass over the changed files. There are a few places where a link links to TODO (only two of them pointed out as inlined comments - there are a few more). Will these be inserted before this is merged?

@javagl javagl merged commit f387186 into main Mar 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants