-
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
Instanced 3D Model and Composite Tile Formats #23
Comments
We'll also want to be able to support LOD where instanced models are rendered when zoomed in close, and billboards are rendered when zoomed out. I think the right tile.json layout (e.g., with i3dm tiles at the leafs and vector tiles with billboards in non-leafs) will work. |
Updated |
Some questions:
|
+1 on |
Would we be able to specify any kind of scaling factor for each instance as part of the tile, or would that have to be done client side after-the fact? For example, I may have 100k trees that all use the same model but each tree's height and radius might be different based on their size and age. It would be convenient to bake that information into the tile rather than have to store the meta-data and do extra work to scale them every time the tile is loaded. |
Yes, scale will be a semantic in the Batch Table just like, for example, b3dm has per-building heights. |
|
|
Discussed offline with @lilleyse. No changes here. b3dm embeds binary glTF since it is unlikely that tiles would reuse the same model; i3dm has the uri option to share models across tiles and the embed option for a single tile use case. |
First, see the original notes for Instanced 3D Model and Composite tile formats. To help design the Instanced 3D Model tile format, see the Batched 3D Model tile format.
We now have significant work towards instancing in Cesium. See CesiumGS/cesium#3049.
Here's some initial thoughts:
Instanced 3D Model
We can significantly optimize the size of eachInstanced 3D Model updates #33instance
field, e.g., positions can be quantized relative to the bounding volume (see EXT_quantized_attributes). Rotation could also be optional (part of the batchTable) and default to Y up (glTF default) in a local frame for the instance's position. Rotation could use fewer fields. RTC. Delta encoding... SOA vs. AOS... Look into point cloud compression...ShouldInstanced 3D Model updates #33instance.batchId
be omitted whenheader.batchTableLength === 0
. This will complicate the client, but save memory; however, the case it saves memory for is probably rare in practice.Throughout 3D Tiles, shouldMoved to Batch Table changes #32batchTable
be renamed? Something likepropertyTable
,metadataTable
, etc. We can also decide this later as we define more tile formats. Consistent terminology is important.Throughout 3D Tiles, should theMoved to Batch Table changes #32batchTable
work more like glTF buffer/bufferView/accessor to avoid arrays of numbers?Composite
In order to have different models instanced in the same tile (or more generally, combine any number of tiles, even tiles of different formats), we can use a Composite tile format.
Perhaps:
The text was updated successfully, but these errors were encountered: