Replies: 1 comment 2 replies
-
@jo-chemla loaders.gl has both 3D Tiles and I3S support, plus a two way converter between the formats. We have discussed on-the-fly conversion between the formats (that is how titiler works, after all) but it is surprisingly difficult. I3S has node page structure and other things that span many tiles and it is not just a 1-1 transform. Instead loaders has pluggable loaders of the same category that output data in a standardized form (3D Tiles and I3S being in the Tiled 3D category). Then the deck.gl Tile3DLayer can render that standardized data, making it easy to add support for a new Tiled 3D format (say COPC or Potree). If you see an area where you could contribute let me know. |
Beta Was this translation helpful? Give feedback.
-
I'm hoping this is the right place for such a discussion - this follows a dream thread I've made a while back regarding what could be called Ti3D - a middleware a la TiTiler but for tiled 3D formats. I'm leaning towards loaders.gl for this discussion as the end goal of the library is to basically support any geospatial format (raster, vector, 3d etc), and be the middleware for any application that want to ingest, display and process such formats - with a strong focus on deckgl/mapbox/maplibre ecosystems.
TiTiler main use-case if to ingest COG (Cloud Optimized Geotiffs) and serve a TMS/XYZ endpoint on the fly - without storing the tiles other than via caching. This way, any application (web or desktop) that do not yet support the tiled/pyramid structure optimization of COG can still access them via a standard, old-school TMS endpoint. It was ignited and is being extended by folks at DevelopmentSeed like vincentsarago and kylebarron - with similar projects like TiFeatures, TiPG, TiMVT etc) on top of FastAPI, can support STAC catalogs, on-the-fly mosaicking, styling etc.
Most softwares from both the geospatial sector and 3D-rendering engines made the shift to spporting 3D-tiled formats
Using such a middleware would make any of these apps ingest any 3D-tiled datasets (mesh or pointcloud, COPC, OGC 3D-tiles, potree etc, really anything supported by loadersgl). Translating a request tile index, computing a rigid matrixTransform from one CRS to another CRS on the fly, using the underlying already tiled representation of the input data would probably make it doable - might require to have an underlying unified representation to translate to/from.
Would love to hear anyone's thoughts about this!
Beta Was this translation helpful? Give feedback.
All reactions