Please some help here!

Dear all,
Firstly, apologize me if my questions are too basic; I am not a software developer. I own a real estate website in Argentina. We want to render on the base map certain areas of our city in 3D textured meshes. We are making models through photogrammetry (mostly drone-acquired photos, Bentley’s ContextCapture software).
My developers have been doing some trials with Google’s WebGL Overlay View, three.js, gLTF files, draco compression and KTX 2.0 textures compression. They are very good, but they are not specialized in 3D graphics.
My questions are:
a) Is technology as of November 2021 sufficiently advanced in order to be able to render a city-scale photorealistic mesh in devices that are not high-end, such as regular PCs or mobiles?
b) Are we on the right/best track? Or should we be working with CesiumJs and 3D tiles?
Just a line from any expert indicating us the best path would be so much appreciated.
Best regards,
Santiago from Argentina

Hello Santiago,

Thank you for your questions. 3D Tiles is an open standard that allows 3D data to be streamed to and rendered on a wide range of devices. We have seen many successes with rendering city-scale photogrammetry in web browsers on PCs and mobile devices.

There are some photogrammetry datasets that come with a free Cesium ion account that you can examine, including these:

  1. Melbourne
  2. Denver

The Denver photogrammetry was captured at three different resolutions, including sub-centimeter resolution around Union Station.

In a custom CesiumJS application, the maximumScreenSpaceError can be decreased to boost rendering quality or increased to improve performance. Here is a simple example of that.

I would also encourage you to check out our blog, which has user stories that could help you get a feel for the current state of the technology. Here is a story about data that came from ContextCapture.

With all of that said, the best way to determine if 3D Tiles and CesiumJS meets your needs would be to create a free Cesium ion account and upload your data (or a small subset). The platform is designed to be easy to use: all you do is upload your 3D data (including textures, metadata, etc.) using your browser, and the pipeline will convert it to 3D Tiles and host it. You can then view it in CesiumJS with one click. Here is some documentation on supported data types.

If you decide to try ion and run into any challenges, we’d be happy to help you in the ion forum.

Please let me know if this is the kind of guidance you were looking for and if you have any further questions.

Thanks,
Matt

Hello Matt,

Thank you so much for such a detailed explanation.

Our website uses Google Maps as base map. Google has now released the WebGL overlay view (https://developers.google.com/maps/documentation/javascript/webgl/webgl-overlay-view), which allows you to add 3D content to your maps using popular 3D graphics libraries such as Three.js.

I was wondering whether it is possible to ad 3D tiles to those basemaps using “CesiumJS" instead of “Three.Js", or maybe Three.Js with a 3D tiles renderer such as this one (https://github.com/NASA-AMMOS/3DTilesRendererJS).

I am making these questions based on the idea that 3D tiles improve rendering and processing in relation to plain .glb files.

Do my questions make any sense?

Thank you so much in advance,

Santiago