Question

Problems with 2sided image texture in 3D files


Hello all,

I need to read glb-files and run a spatial transformation on it. Every glb shows one floor of a building with all its rooms. On the walls there are textures of photos so it looks like the view inside the room. The exterior walls show the same image as from the inner backside, because the building photos where only taken from inside, not from outside the building.

FME can not read glb, so I tested some software to create different formats which FME can handle, like fbx and dae.

When I look at the glb, fbx or dae in a 3D-Viewer, I can see the photo projections correctly. But in FME Inspector and after transforming the data to cesium 3D Tiles at exterior walls the inner room images are only shown outside. On the inner side there is the image missing.

Is there a way to show the same images at the exterior walls and also at the inner side or change some settings so I can see the images only at the inner side and not outside?

I am thankful for any help!

Best regards, MiHue


6 replies

Userlevel 4
Badge +26

The problem is that FME seems to drop the backface when exporting to GLTF (and Cesium 3DTiles). To preserve the back faces you need to use a SurfaceSplitter - This will create additional surfaces (more data) (one for each double-sided surface) but each should have have the correct texture reference. The surface splitter does not work on mesh features so you will need to convert your mesh data to a CompositeSurface using a GeomertryCoercer. You might need to first deaggregate your model as some formats are read as an aggregate of mesh features and these will be rejected by the GeomertryCoercer.

So 1. Read Data, 2. Deaggregate, 3. Coerce to composite surface, 4. Split Surface, 5. output 3DTiles.

 

This process will make the output file larger but this is the only way to "preserve" the backfaces with FME.

 

dae_2sidedHello,

thank you virtualcitymatt for your answer. It sounds very clever easy but I tried it with no success.

I attached an image explaning my steps:

 

Exported .glb as COLLADA .dae in software BLENDER

- inner walls of a room show image texture

- outer walls show the same texture as inside

 

Inspect or transform .dae in FME

- one sided walls show the correct texture

- two sided outer walls only show the image texture outside, not inside

Userlevel 4
Badge +26

dae_2sidedHello,

thank you virtualcitymatt for your answer. It sounds very clever easy but I tried it with no success.

I attached an image explaning my steps:

 

Exported .glb as COLLADA .dae in software BLENDER

- inner walls of a room show image texture

- outer walls show the same texture as inside

 

Inspect or transform .dae in FME

- one sided walls show the correct texture

- two sided outer walls only show the image texture outside, not inside

Hmm, so the problem is with FME reading the DAE? When inspecting the .dae do you see the inner walls?

Are there any warnings in the log file when reading at all? Are you able to share your .dae file?

FME Inspector shows it in the same wrong way. In Blender it looks fine.

I exported one single room. As you can see in dae all walls show the same image texture at the inner and outer side.

This is the dae-file

Reply