-
Notifications
You must be signed in to change notification settings - Fork 472
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
Implicit tiling spec #444
Implicit tiling spec #444
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.
Added some notes about problems with formulas
extensions/3DTILES_implicit_tiling/0.0.0/schema/subtree.schema.json
Outdated
Show resolved
Hide resolved
extensions/3DTILES_implicit_tiling/0.0.0/schema/subtree.schema.json
Outdated
Show resolved
Hide resolved
extensions/3DTILES_implicit_tiling/0.0.0/example/everything.json
Outdated
Show resolved
Hide resolved
@sanjeetsuhag I just pushed the commits @ErixenCruz and I have been working on. There's still a couple sections and diagrams in progress, but you can review what we have so far |
|
||
**Tile availability** is a bitstream that determines which tiles exist within a subtree. There is one bit for each subtree node. A 1 indicates that a tile is available, while a 0 indicates that a tile is unavailable. | ||
|
||
![Tile Availability](figures/tile-availability.jpg) |
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.
This diagram may potentially mislead someone into believing that binary trees are supported. We should use quadtrees.
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.
Yeah, my only hesitation is that a quadtree diagram could get quite a bit wider (since we need to show the entire buffer).
As a group we decided to hold off for now and find a better solution later.
@sanjeetsuhag updated! |
|
||
Implicit tiling also provides a method for accessing tiles by tile coordinates. This allows for abbreviated tree traversal algorithms. | ||
|
||
![Explicit vs Implicit Tiling](figures/implicit-vs-explicit.jpg) |
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.
Should clarify binary tree is for visualization only since we only support quad and oct.
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.
Found several small revisions, but nothing huge.
* **tiling scheme** - A well-defined method for subdividing a bounding volume into a hierarchy of tiles. | ||
* **unavailable tile** - A region of space that does not contain a tile. | ||
|
||
## Examples |
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.
I feel like overall we could do better with examples if we had a more visual way of presenting at least one of them. Though as @ErixenCruz and I learned on Friday, putting together labeled examples can be time consuming (since determining morton order is necessary in some diagrams.
extensions/3DTILES_implicit_tiling/0.0.0/schema/3DTILES_implicit_tiling.schema.json
Outdated
Show resolved
Hide resolved
Note: we should be careful about subtree diagrams. subtree leaf nodes should point to the subtree below them, not a node directly. |
Co-authored-by: Erixen Cruz <[email protected]> Co-authored-by: Sam Suhag <[email protected]>
Should
be explicitly forbidden? Because if it were 0, there would be no point in having a subtree in the first place. Another benefit of this constraint is if using tile metadata, it's guaranteed that a tile metadata buffer always exists. |
@IanLilleyT @sanjeetsuhag @ErixenCruz @lilleyse Changelist from this week's round of implicit tiling schema/spec updates:
What has NOT been changed (yet):
Any questions/comments, please let me know. |
|
||
**Child subtree availability** is a bitstream that determines which subtrees can be reached from the deepest level of this subtree. | ||
|
||
The child subtree availability bitstream has slightly different structure than tile or content availability. There is one bit for each node in the level of the tree immediately below the subtree. That is, if the deepest subtree is level `L`, then there is one bit for every node at level `L + 1`. Since each node at level `L` has `N` children (4 for `QUADTREE` or 8 for `OCTREE`), there are `N * (L + 1)` bits in the child subtree availability bitstream. A 1 bit means there is a child subtree available at that position in the tree. A 0 bit means there is no subtree available at that position. |
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.
That is, if the deepest subtree
. Should it bedeepest subtree node
?- I assume
L
is a level local to the subtree, but it could be read as a global level. - The equation
N * (L + 1)
should beN ^ (L + 1)
. - No mention of morton encoding
I feel like this paragraph could be more clear if defined in terms of subtreeLevels
To keep the in-progress extensions in lockstep we're going to merge this PR into the 3d-tiles-next staging branch and work from there. |
Direct link to
3DTILES_implicit_tiling
specOpening this early because I wanted to refer to some of the availability buffer formulas in another issue.
This is the specification to describe the implicit tiling schema we merged into
3d-tiles-next
last week.I'll update this description once I have more of the text fleshed out.