-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Voxel API should conform to Cesium3DTileset interface #12297
Comments
Question regarding the approach for reproducing the 3DTileset events for Voxels. Looking at the generated sample dataset we only have a single LOD at 0/0/0. Is this always the case now? Or is this due to the specifics on the source data and/or the specific tiler used?
It seems like the
|
@lukemckinstry I'm not quite sure what you're saying about the LODs. The folders are organized as For the per-tile events, one point for clarity: Individual tiles are handled very differently between Current stateCesium3DTilesetA
Each Every change to a tile in VoxelPrimitiveA Requesting data is done from For an analogue to Cesium3DTileset statistics, you may want to look at Desired stateIdeally, each voxel tile should be a One complication is that the |
|
A few follow ups
|
@lukemckinstry We should mirror the behavior for implicit tilesets here. Do we have availability data? If so, let's try to use that to determine if the tile is available. Otherwise I believe implicit tilesets raise the tile failed event. CC @jjhembd |
It seems we do have availability data for voxels in the tileset.json. It would be helpful to know if it is a required field, is there a spec? |
There are 2 levels of "conforming to Cesium3DTileset interface" that involve very different levels of effort:
#12432 will reduce some of the internal barriers to voxels as an actual
Aside from the major architectural differences, some smaller differences might be a good opportunity for lower-effort 'upgrades' to Voxel capabilities:
|
Maybe this was so obvious it didn't need saying, but...
|
I found some additional items to track for performance & profiling purposes. These are statistics from
I believe I see a clear path to implementation for textureByteLength, visited, selected, numberOfCommands and numberOfTilesWithContentReady. I am less sure about geometryByteLength, batchTableByteLength, numberOfTrianglesReady. I could use help understanding if these concepts apply to voxels. |
@lukemckinstry I think you have identified the relevant ones: textureByteLength, visited, selected, numberOfTilesWithContenReady.
Voxels will have all relevant metadata stored in the textures, so |
Right now
Cesium3DTilesVoxelProvider
and other voxel classes are distinct from how other 3D tilesets are used in CesiumJS:The goal is eventually to bring voxels into 3D Tiles as an extension. As such, we want to treat it in the API like like other 3D Tilesets, and be able to operate using familiar paradigms. Furthermore, the properties and functions associated with other 3D Tilesets should be available for voxel tilesets too, particularly:
allTilesLoaded
,initialTilesLoaded
,loadProgress
,tileFailed
,tileLoad
,tileLoad
,tilesLoaded
,tileVisible
,tileUnload
.statistics
(for use in other parts of the API)Where possible, we should also make sure the documentation is in good shape, and include inline examples where we can.
CC #11018
CC #11008
The text was updated successfully, but these errors were encountered: