Skip to main content

I have a photomesh that looks fine as obj or gltf and when I upload it to Cesium Ion through the webinterface.CesiumIon3DTilesHowever, when I use the FME 3DTiles writer and upload that directly, the textures are not illuminated correctly.

FME3DTilesIs there anything I can do to get FME to output the photomesh correctly?

Hi @jdh​ ,

Please try using the GeometryValidator to fix Missing Vertex Normals before writing to 3DTiles.


Hi @jdh​ ,

Please try using the GeometryValidator to fix Missing Vertex Normals before writing to 3DTiles.

Hi @daveatsafe​ ,

I ran the GeometryValidator and there were no missing vertex normals detected.


Hi @jdh​ 

I am not sure whether this will help, but when we write glTF, we need to set specular color and shininess (even if we have textures), they are roughly translated into metalness and roughness of the PBR representation. So maybe this might work since glTF is a relative of 3DTiles.

 

Dmitri


Hi @jdh​ 

I am not sure whether this will help, but when we write glTF, we need to set specular color and shininess (even if we have textures), they are roughly translated into metalness and roughness of the PBR representation. So maybe this might work since glTF is a relative of 3DTiles.

 

Dmitri

Do you know what values the glTF writer uses? Also how would you set that on the mesh feature in the workspace without destroying the existing texture references?


Do you know what values the glTF writer uses? Also how would you set that on the mesh feature in the workspace without destroying the existing texture references?

Hi @jdh​ ,

I think, you'll need to experiment a bit to find the optimal values (if this method works at all)

Check this image:

PBREmulationThe poster on the left has specular color set to 1,1,1 and shininess to 1. It's too bright.

The poster on the right has specular color set to 0,0,0 and shininess to 0. Too dark.

The one in the middle has specular set to 0.5,0.5,0.5, and shininess to 0.1 Better than the others, but depending on your textures you may need to find better values.

 

To preserve the texture, you will need to extract it (AppearanceExtractor), style (AppearanceStyler), and put it back using "Use existing texture coordinates" option in AppearanceSetter. This might be not very easy if you have multiple textures, but it's possible.

 

Dmitri


Reply