Draft
Conversation
Contributor
Author
|
The last commits added a set of specs. There is an issue mentioned at CesiumGS/cesium#13195 (comment) that remains to be resolved before finalizing this PR. |
Contributor
Author
|
This was tested with the current state of CesiumGS/3d-tiles-tools#189 , meaning that it can become "ready" as soon as this PR is merged and a new released of the tools is available. |
lilleyse
approved these changes
Mar 11, 2026
Contributor
Author
|
The dependency for the 3D Tiles Tools has been updated to 0.5.3, which includes the bounding volume containment validation functions. Some validation for |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The 3D Tiles Validator Roadmap (that will have its 10th birthday soon) casually contained the point
Even though this issue is outdated, this specific check was still on the roadmap via #233 . This issue already contains a description of the task, and some thoughts about how to address it. There are some aspects to that that can be a bit tricky. And the roadmap issue also mentioned:
But it can be nearly trivial when there are the right building blocks that the functionality can be assembled from. A crucial part of the current implementation here is the generalization that is part of CesiumGS/3d-tiles-tools#189 : It offers a
VertexProcessingclass that can be called like this:It can receive PNTS, GLB, CMPT, B3DM, or I3DM content data, and will simply pass all vertices to that "consumer" (including the transforms from I3DM data, or things like the
RTC_CENTERfrom the feature table).The 3D Tiles Tools PR also contains a few
BoundingVolumesContainmentutility functions, for checking whether a certain point is contained in a certain bounding volume.So this PR now adds a
ContentDataBoundingVolumeValidatorclass that brings this together:VertexProcessingfunctionBoundingVolumesContainmentfunctionsThe validation issues contain some additional details. For example, when there is a tile bounding volume that does not contain all vertices, then an issue like this will be generated:
It includes a short description of the actual tile (
/root/children/0here), and information about how many vertices have not been contained.When there is a content bounding volume that does not contain all vertices, then it will cause the following issue:
Remaining tasks:
Integrating it
Nothing of that is wired in yet. I tested it with a local standalone application that only called this validation function. It is not entirely clear where and how it should be integrated: This validation is rather expensive. It should probably be disabled by default, and only enabled via some
--checkBoundingVolumeContainmentflag. Therefore, I'd probably not wire it in "too deeply" into the main validation functionality. I.e. I think that it should not be done as part of the main content validation. Instead, it should be a step that is performed after the general validity of the tileset already has been checked.Minor updates of other validators
As mentioned in #233 (comment) : There are some containment checks in the Maxar extension validators. These could be updated in terms of the issue type, as well as the coverage of the bounding volume types.
Tests
I locally have >20 test cases, covering ...
box/sphere/regionbounding volumesThese will be added as unit tests soon.
EDIT: There probably should be a dedicated test case with an external tileset as well (e.g. an external tileset attached to a tile that has a non-identity transform)