Solved

3d tiles

  • 9 February 2024
  • 10 replies
  • 250 views

Badge +5

Hi, I have been working on CESIUM 3DTiles generation, but I am facing challenges because the results are not aligned with my intended goals. Specifically, I am unable to achieve the desired mesh quality. The input files consist of a GeoTIFF with a resolution of 6 centimeters per pixel, and the point cloud data is stored in a LAZ file containing over 250 million points. Despite these inputs, the resulting mesh quality remains disappointingly low. I am seeking guidance on how to improve my workspace and achieve a high-quality mesh.

 

icon

Best answer by sigtill 12 February 2024, 20:46

View original

10 replies

Userlevel 2
Badge +7

Hi @edwin_medina, it looks like your LAS file only contains 579,803 points and not 250 million+. Would you be able to check that: 1. your original input has 250 million+ points, and 2. that they’re all being read into FME? 

Badge +5

Yes they all being read and had 250M points

 

Userlevel 2
Badge +7

Hi @edwin_medina, that’s odd, having that many points should yield a good quality mesh. Would you be able to share your LAS for us to take a closer look? You can attach files here (they must be zipped) or you can send it to us via our secure FTP if you’d prefer (instructions here). 

Badge +24

Hi @edwin_medina - have you looked into the PointCloudSurfaceBuilder ? Remember to tile the data first, and also work on a small sample of the data to look for the quality before you process the whole pointcloud.

Userlevel 5
Badge +32

Two things to look at here - firstly your mesh data are in LL84 coordinates and not meteres - I would definitely recommend first, before going through the tin generator to reproject to meters. Maybe just try SHERICAL_MECATOR if you're not sure what to go with. 

Check the Tolerance setting in the Tin generator - if you want to use ALL the points then you will need to use 0 - if not at 0 it will throw points out which is actually a good thing but when in LL84 its really hard to pick a good tolerance (this I why I'm suggesting meters)

This means you will also need to reproject your texture too. 

As for the output I'm very interested to know the size of the output .b3dm files and how many were created.

As far as I'm away FMEs 3DTiles writer will only down sample the texture and not do any simplification to the mesh or create tiles out of a single mesh feature. It may have changed now though 

 

Userlevel 5
Badge +32

Hi @edwin_medina - have you looked into the PointCloudSurfaceBuilder ? Remember to tile the data first, and also work on a small sample of the data to look for the quality before you process the whole pointcloud.

100% this

Badge +5

Hi @edwin_medina, that’s odd, having that many points should yield a good quality mesh. Would you be able to share your LAS for us to take a closer look? You can attach files here (they must be zipped) or you can send it to us via our secure FTP if you’d prefer (instructions here). 

Hi @saraatsafe, sure, I just uploaded a SANCHEZ CALSIFICADO.zip file via FTP

Badge +5

Hi @edwin_medina - have you looked into the PointCloudSurfaceBuilder ? Remember to tile the data first, and also work on a small sample of the data to look for the quality before you process the whole pointcloud.

Hi @sigtill, yes, I did, but they didn’t give me the results I expected. I had to connect a PointCloudComponentTypeCoercer to it because some component types were conflicting with the transformer, even with that the translation failed. That´s why I chose the TINGeneration.

 

Note: sorry I checked this as a best answer by mistake

Badge +5

Two things to look at here - firstly your mesh data are in LL84 coordinates and not meteres - I would definitely recommend first, before going through the tin generator to reproject to meters. Maybe just try SHERICAL_MECATOR if you're not sure what to go with. 

Check the Tolerance setting in the Tin generator - if you want to use ALL the points then you will need to use 0 - if not at 0 it will throw points out which is actually a good thing but when in LL84 its really hard to pick a good tolerance (this I why I'm suggesting meters)

This means you will also need to reproject your texture too. 

As for the output I'm very interested to know the size of the output .b3dm files and how many were created.

As far as I'm away FMEs 3DTiles writer will only down sample the texture and not do any simplification to the mesh or create tiles out of a single mesh feature. It may have changed now though 

 

​​

Hi @virtualcitymatt,  this barely works. I clipped a small region of data and set the Tolerance to 0. This improved the quality a little bit, but it still doesn’t give me the results that I’m looking for.

Results vs point cloud

 

Userlevel 2
Badge +7

Hi @edwin_medina, apologies for the late response here. 

You can try breaking up the point cloud into tiles first using the Tiler, then use the Cesium 3D Tiles Writer (which I believe you already are). I would highly recommend trying this out-- the Tiler will help break things up and hopefully make it easier for the writer to process more detail. 

As @virtualcitymatt suggested, you may also want to reproject your starting data to Spherical Mercator or another meter-based coordinate reference system at the beginning if you haven’t already. 

Please give this a try and let me know if you have any other questions! 

Reply