Skip to content
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

3D Tiles support #185

Closed
6 of 10 tasks
vpicavet opened this issue Sep 2, 2016 · 24 comments
Closed
6 of 10 tasks

3D Tiles support #185

vpicavet opened this issue Sep 2, 2016 · 24 comments
Labels
3d-tiles feature 🍏 Adds a new feature

Comments

@vpicavet
Copy link
Contributor

vpicavet commented Sep 2, 2016

The 3D Tiles specification is starting to take shape and approaches a stable version :

As the specification also enters OGC proposed work as community standard, it will be important to support this protocol at some point.

The spec will take the following parts into account for planned version 1.0 :

  • tileset.json
  • Batched 3D Model (b3dm)
  • Instanced 3D Model (i3dm)
  • Point Cloud (pnts)
  • Vector Data
  • Composite (cmpt)
  • Declarative Styling

Cesium already implements the draft version of the specification :

Some issues which must be solved before being able to implement 3D Tiles : 

Do not hesitate to comment and add information on this large issue.

@vpicavet vpicavet added the feature 🍏 Adds a new feature label Sep 2, 2016
@vpicavet vpicavet added this to the 2.1 milestone Sep 2, 2016
@Jeremy-Gaillard
Copy link
Contributor

Working on it, starting with the tileset.json import.

@Jeremy-Gaillard
Copy link
Contributor

Jeremy-Gaillard commented Feb 20, 2017

tileset.json support:

  • asset
    • version
    • tilesetVersion
    • gltfUpAxis
  • bounding volume
    • box
    • region
    • sphere
  • geometric error
  • viewer request volume
  • refine (add or replace)
  • transform
  • content
    • bounding volume
    • url
      • additional tileset.json are not supported Done
      • the url extension should be used to determine the tile type 3d-tiles specification has been updated to remove this constraint
  • children

Known issues:

  • the transformation matrix should apply to the box and sphere bounding volumes and viewer request volumes
  • if a viewer request volume is defined, the loading of the content should be delayed until the camera is in the volume (currently, only the culling part is done)

@Jeremy-Gaillard
Copy link
Contributor

Jeremy-Gaillard commented Feb 20, 2017

Batched 3D Model (b3dm) support:

  • Geometry
  • Batch table
  • Feature table

Additional issues:

  • Three doesn't seem able to handle the batchId shader attribute

@vpicavet
Copy link
Contributor Author

@NikoSaul is working on this issue

@qdnguyen qdnguyen self-assigned this May 17, 2017
@qdnguyen
Copy link
Contributor

What is he doing exactly? i'm also working on 3dtile generation, first test with 3d model of lyon.

@vpicavet
Copy link
Contributor Author

Please consider contributing to https://github.com/Oslandia/py3dtiles/ if you want to work on the server-side aspects of 3D Tile : support for all the specs in the module and converter scripts are welcome.

@NikoSaul will start working on the client side, implementing 3D tiles support in iTowns, first with spec examples.

And please, please please, communicate before you start working on a subject, and try to consolidate / mutualize your efforts with existing projects.

@qdnguyen
Copy link
Contributor

it's server-side that i'm doing now, but my objectif is to have a 3dtiles of Bati3D (paris, lyon) from cityGML format, so i used 3dcitydb and some javascript tools (ex. gltf to b3dm, 3dtile tool) to do that.

@NikoSaul NikoSaul self-assigned this May 17, 2017
@NikoSaul
Copy link
Contributor

NikoSaul commented May 22, 2017

Read the .pnts file

  • .pnts
    • Point semantic
      • Position
      • Position quantized
      • RGBA
      • RGB
      • RGB565
      • Normal
      • Normal oct16p
      • BatchId
    • global semantic
      • Point length
      • RTC center
      • Quantized Volume offset
      • Quantized Volume scale
      • constante RGBA
      • Batch length

NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 1, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 12, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 12, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
@qdnguyen
Copy link
Contributor

Can we support a b3dm file with embeded resources such as texture?

For now, when i load an embeded b3dm file, i got this error from gltf loader.
GLTFLoader.js:980 Uncaught (in promise) TypeError: Cannot read property 'binary_glTF' of undefined
at GLTFLoader.js:980
at _each (GLTFLoader.js:592)
at GLTFLoader.js:978
at

NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 20, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 23, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 28, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
NikoSaul added a commit to NikoSaul/itowns2 that referenced this issue Jun 29, 2017
Issue iTowns#185 tracks the progress
Position and RGB information are supported
autra pushed a commit that referenced this issue Aug 29, 2017
Use distance to bounding volume instead of distance to center of the bounding volume
Issue: #185
NikoSaul added a commit that referenced this issue Aug 29, 2017
This commit add a new slider for adapt the sseThreshold, for each tile in the scene
Issue #185
NikoSaul added a commit that referenced this issue Aug 29, 2017
This commit add a new slider for adapt the sseThreshold, for each tile in the scene
Issue #185
NikoSaul added a commit that referenced this issue Sep 19, 2017
A node must be inherit of the parent's value, unless explicitly specified
See issue #185
peppsac pushed a commit that referenced this issue Sep 19, 2017
A node must be inherit of the parent's value, unless explicitly specified
See issue #185
@gchoqueux gchoqueux removed this from the 2.1 milestone Jan 11, 2019
@ladislavhorky
Copy link

ladislavhorky commented Mar 14, 2019

Batched 3D Model (b3dm) support:

  • Geometry
  • Batch table
  • Feature table

Additional issues:

  • Three doesn't seem able to handle the batchId shader attribute

Hello,
is there any progress or plan to support the feature table in 3D tiles?

I am preparing a talk for FOSS4G NA 2019 about performance comparison of CesiumJS, iTowns and VTS on 3D cadastre example (terrain + 3D city + vector parcels). I seemed that iTowns support 3D tiles with LODded, textured mesh 3D city models but it does not so far which is a major drawback. All models I use work just fine in Cesium, in iTowns I get 3D Tiles feature table not supported yet..

Thanks,
Ladislav

@ladislavhorky
Copy link

Maybe @Jeremy-Gaillard ?

@Jeremy-Gaillard
Copy link
Contributor

Hello @ladislavhorky,

Unfortunately, I am no longer active on this project since the end of my PhD, so I'm not sure what the status of the implementation of the feature table is.

I may still be able to help you though. I think the problem comes from an evolution of how the 3D Tiles specification handles the RTC. It used to be in the glTF part of the B3DM file, but it seems it is now in the feature table. If that's indeed the problem (you can check easily by looking if your B3DM file has an RTC_CENTER property in its feature table), you (or someone that is still active on the project) can fix this quite easily by adapting the code here and here.

@ladislavhorky
Copy link

Hello @Jeremy-Gaillard,

thanks for the pointers. At least for our data, the RTC_CENTER is in the featureTable as you pointed out (there is not much more than that). We will probably check data from other vendors to be sure.

From the code you linked it seems the correct solution is to parse the feature table, note the RTC_CENTER if present and then pass it to applyOptionalCesiumRTC as optional override for the CESIUM_RTC.center - that would make it BW compatible (no center in the feature table -> unchanged behavior) and working for us (provided it is the only problem).

There is a slight chance I may manage to make a PR. If not, let this serve as a reference for anyone working on the project (@gchoqueux probably?).

Thanks, L.

@gchoqueux
Copy link
Contributor

Hello @ladislavhorky , thanks for your interest in itowns.

For the moment iTowns doesn't support the features tables.

We are in 3dtiles refactoring with @jailln . I couldn't work, in full time, on 3d tiles until the second semester.

@jailln do you plan to implement features tables?

@ladislavhorky
Copy link

Hello @gchoqueux,

I may manage to give it a day - I would not exactly call it an implementation, a quick hack at best. If I manage to get it working, I will make a PR and link the 3D tiles data I used.

@jailln
Copy link
Contributor

jailln commented Mar 19, 2019

@gchoqueux I don't plan to work on the feature table implementation for now (I am currently more focused on the extensions of 3D Tiles) but it would indeed be nice to support it.

@ladislavhorky
Copy link

Hi,
I managed to get a 3D tiles city model downloadable from here that does not contain a batch table. Model can be displayed in Cesium and it looks fine. When displayed in iTowns, the model shows up but looks completely black (no textures) with no warnings in the console.

Therefore, I guess there is more to implement to support textured-meshes 3D tiles than just batch table. As the batch table is just one step towards support of textured 3D models in iTowns I have to drop the matter for time reasons.

@adam314315
Copy link

Hi,

Does the last version of iTown implement 3D Tiles Next format (as presented by Cesium https://github.com/CesiumGS/3d-tiles/blob/main/specification/README.md) to avoid having a single large tileset.json file rather than a tileset.json file with references to smaller tileset.jon files attached to their corresponding bounding boxes ?

@gchoqueux
Copy link
Contributor

Hi
At the moment itowns doesn't support 3d tiles next

@mgermerie
Copy link
Contributor

The complete 3d-tiles support is planned in the short term road map. We are currently studying possibilities in terms of libraries to enhance support (as mentioned in this discussion.

@jailln
Copy link
Contributor

jailln commented Sep 26, 2024

Closing this since we've moved to 3DTilesRendererJS (see the new OGC3DTilesLayer) that supports most of the 3.0 spec and part of the 1.1 spec. 3D Tiles spec support can now be followed there directly.

@jailln jailln closed this as completed Sep 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3d-tiles feature 🍏 Adds a new feature
Projects
None yet
Development

No branches or pull requests