Skip to content

Add 3DTILES_implicit_tiling_custom_template_variables extension#815

Draft
lilleyse wants to merge 3 commits intomainfrom
3DTILES_implicit_tiling_custom_template_variables
Draft

Add 3DTILES_implicit_tiling_custom_template_variables extension#815
lilleyse wants to merge 3 commits intomainfrom
3DTILES_implicit_tiling_custom_template_variables

Conversation

@lilleyse
Copy link
Collaborator

@lilleyse lilleyse commented Jun 30, 2025

This extension allows arbitrary property IDs to be used in implicit tiling template URIs, e.g.

"content": {
  "uri": "content/{level}/{x}/{y}/{timestamp}/{revision}.glb"
}

This is useful for resolving tile content through mechanisms other than just its implicit tile coordinates, e.g. locating content resources by timestamp or revision number.

This is one of three extension for supporting time-dynamic 3D Tiles: #102 (comment)

To do:

  • Make github links relative paths
  • Link to CesiumJS implementation
  • Suggestions on the name welcome...

Comment on lines +31 to +32
Template variables are substituted with property values in [`tileMetadata`](https://github.com/CesiumGS/3d-tiles/tree/main/specification/ImplicitTiling#tile-metadata), [`contentMetadata`](https://github.com/CesiumGS/3d-tiles/tree/main/specification/ImplicitTiling#content-metadata), [`subtreeMetadata`](https://github.com/CesiumGS/3d-tiles/tree/main/specification/ImplicitTiling#subtree-metadata), or [tileset metadata](https://github.com/CesiumGS/3d-tiles/blob/main/specification/README.adoc#metadata). The fully resolved values are used, i.e. after [`noData`/`default` substitution](https://github.com/CesiumGS/3d-tiles/blob/main/specification/Metadata/README.adoc#required-properties-no-data-values-and-default-values) and [`normalized`](https://github.com/CesiumGS/3d-tiles/blob/main/specification/Metadata/README.adoc#normalized-values) and [`offset` and `scale`](https://github.com/CesiumGS/3d-tiles/blob/main/specification/Metadata/README.adoc#offset-and-scale) transformations have been applied.

Copy link
Collaborator

Choose a reason for hiding this comment

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

The first sentence here could use a bit more clarity. Is it saying that the property values are substituted defined in the property tables for the listed metadata types, or is it saying that the template variables are substituted within those property tables? To you and me, the former is obvious, but to someone new to 3D Tiles and with the lack of examples in this extension, it could be unclear.

I'd add "defined" before "in" and that should fix it.

}
```

In case of name collisions, the following precedence order is used:
Copy link
Collaborator

Choose a reason for hiding this comment

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

You should indicate that "1" is meant as the "highest" precedence. Different cultures read tables and values differently.

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.

2 participants