Biao - it is going to be a bit before converters for this are in place. Check out the Q&A section of the spec.
Patrick
Biao - it is going to be a bit before converters for this are in place. Check out the Q&A section of the spec.
Patrick
Folks - here’s another quick 3D Tiles update:
Hi all,
Here’s an update on 3D Tiles progress:
The next step is to get the 3d-tiles branch in better shape with tests and sample data since we are getting a lot of pull requests into it (thanks everyone!), we need to make it more production ready.
Patrick
If you love details, here is the cleanup we’re going to do to make the 3d-tiles branch more production ready: #3177.
Patrick
Hi Patrick, all.
Can you give some example of 3d-tile usage? I use very simple case with CanaryWharf tiles.json and its b3dm files, but tiles didn’t appear.
I use HelloWorld example from Cesium - upgraded with 3d-tiles
My structure of tileset is same as CanaryWharf tileset
b3dm files were loaded (i can see it in network tab of console), but buildings doesn’t appeared.
Can anyone give advice?
Thanks
Hi,
That code looks great. Are you sure the tiles.json has the correct bounding boxes and geometric error?
As part of #3177, we’re going to add some trivial test data (and tests), which you will be able to compare against.
Patrick
Patrick,
This is a very exciting feature!
Here it says that “AGI is also developing tools for creating 3D Tiles”: GitHub - CesiumGS/3d-tiles: Specification for streaming massive heterogeneous 3D geospatial datasets 🌎
Are there any tools available today to help creating 3D Tiles or are they still a work in progress?
Thanks!
AGI’s tools for 3D Tiles are still a work-in-progress as is the spec itself and the Cesium implementation, but things are moving along nicely. I believe a few other folks - at least - are also building tools for 3D Tiles. Search the forum or Google for more info.
Patrick
Dear 3d-tiles team!
I wonder whether it will be possible to store 3d models in a database (Postgres) and maybe stream directly from there, or else generate b3dm files from there?
In my opinion the best would be that the geometries are stored in a 3d spatial database, therefore I could perform spatial queries on a database level (e.g. “where are the buildings that are higher than 10 meters?”).
Postgres from 9.4 supports JSON and JSONB formats quite nicely, the tiles.json could surely be stored in a table. But what about the data itself?
I know it is a different approach that 3d-tiles uses (although I’m quite new to it and don’t think I understand it completely), just a question.
Best,
Gergely
Hi Gergely,
I imagine that is possible. tile.json is JSON, of course, and the tiles are just binary blobs. You could store or generate these however you see fit.
There will also be some declarative client-side filtering; for example, try the “color by height” option in the NYC demo:
You will also be able to do things like “hide all the buildings built after some year”, etc., depending on the metadata available in the tile or through a REST service.
Patrick
Hi folks,
Here’s a quick update on 3D Tiles:
Patrick
Quick question:
I noticed that the spec says, “the bounding volume for child tiles are completely inside the parent’s bounding volume.” Why? Isn’t it sufficient for the child content to be inside the parent’s bounding volume?
This is standard spatial coherence and the content bounding volume is optional (defaulting to the tile’s bounding volume) since its use case is additive refinement.
Is there a use case we should consider where a child tile’s bounding volume should not need to be completely instead the parent’s bounding volume?
Patrick
Well… yeah! Haven’t we long observed that tightly-fitting bounding volumes of child tiles don’t necessarily fit inside tightly-fitting bounding volumes of parent tiles?
The simple example is using bounding spheres for a quadtree with a single tile at the root (ignoring the fact that bounding spheres are probably not a great choice). The root tile’s bounding sphere wraps the whole Earth. The bounding spheres of the children are much smaller, but they “stick up” outside the parent sphere.
I guess this probably can’t happen with the bounding volumes currently used in 3D Tiles. Although, it’s safe to assume you’re turning those bbox-with-height-range volumes into OBBs on the client, and it might happen with the OBBs (I’m not sure).
In any case, if the intention is to support more bounding volumes in 3D Tiles, I guess I’d turn your question around: is there any use case where child BVs extending beyond parent BVs is a problem, as long as descendant content all fits inside the parent BV? Certainly hierarchical culling still works fine.
To be clear, I’m not talking about content bboxes (which I understand are optional). I’m talking about the content itself. The client will not try to verify this or anything, it’s just the rule that makes culling work right.
Ah, yes, you are right! I submitted #43 to tweak the spec wording. I think we are fine with saying that the child’s content is within the parent’s BV, and that a tile’s BV encloses its content, which does not imply that a parent’s BV fully encloses the child’s BV.
I don’t think the current more restricting language enables any additional client-side optimizations.
Patrick
Hi Guys,
Loving the progress with the tiles branch, and Cesium generally. =)
We have been working with the 3d tile branch from circa 1.12, and models compatible with that branch.
The time has come to get up to date and I wondered if anyone can clarify what has changed with regards to models…
Is it a case of “using the source, Luke” to understand these changes?
Is it b3dm files that have changed, or just tiles.json? Or all of the things! =)
I noticed elsewhere that some people were seeing the models load, but they were not being rendered now, and the issue was perhaps related to the “properties” section of tiles.json…
Is it that simple?
Thanks for any pointers…
Stephen
Hi Stephen,
Thanks for the kind words! What kind of app are you building with 3D Tiles?
Since circa 1.12, everything has changed.
Hi Patrick,
We’re working on the Cityzenith Smart Cities application.
Understood on all the changes.
We have a bunch of model sets. It’s a fairly big job each time we do it.
Regenerating or patching tiles.json files is potentially less stressful than rebuilding the model sets.
So I guess I am trying to pick a good time where changes to the spec would be expected to be more or less backwards compatible.
I am sure you’ve been asked this before, I know you can make no guarantees, and I am aware of the 2016 projected roadmap. =)
Should we stick with 1.12 for a while longer?
Kind regards,
Stephen
glTF is stable. b3dm is pretty stable, but I can’t promise that it won’t change, especially the batch table. Again, no promises, but the future tiles.json changes may be backwards compatible.
If it were me, I would just constantly stay up-to-date with the spec and the branch.
Patrick
Dear Partick!
I recently ran into 3DPS (3D Portrayal Service), which is an ongoing OGC specification regarding 3D (“map server for 3D”). I haven’t heard of it before, and if I get it right it is still in progress, but in the future an OGC-specification for 3D data streaming sounds really nice. Is 3d-tiles or AGI itself is part of this workgroup?
I think 3d-tiles is the most advanced solution for visualizing huge amounts of 3d data on the web, but when an OGC standard comes out, I have fears that maybe 3d-tiles maybe will lose its potential and will eventually fade.
Since I would like to dive into something that is maintainable even years after now, this is a big concern for me. Could you please give me some information about 3d-tiles in that (3DPS) matter?
Best,
Gergely