Multiple textures in Babylon viewer vs glTF viewer

We are experiencing some differences in how textures are being displayed in the Babylon viewer and in the glTF viewer.

Our Blender workflows enables textures being stacked on top of each other. In the images below you can see what I mean: we have baked an AO map in 1:1 scale and placed that on top of a tiled texture (brick wall) to avoid baking this as a large texture wrapping all around the facade.

Babylon viewer

glTF viewer

If I were to guess, it seems to me that the glTF viewer is not able to read the map channels and therefore display textures without their attached map channel data. In the Babylon viewer, you can see that the loading displays correctly. Is this because the Babylon viewer allows several Map Channels? Unity for example only allows the two first map channels to be displayed (like most game engine does). Or do you belive there’s another problem?

Here’s how the texture nodes looks inside Blender (the custom node in the top is the one that displays the AO over the bricks)

First - I am very happy that the babylon viewer shows the model as it should :slight_smile:

Maybe @bghgary can explain why our gltf loader is doing such a wonderful job

1 Like

Would be great @RaananW ! Our goal is to have the Blender enabled Babylon workflow output and display in both of the viewers, so wondering what amazing stuff you’ve done which gltf hasn’t :slight_smile: that way we can modify our workflow accordingly to make it work with both

1 Like

@RaananW @bghgary thanks - it works now. Three.js is limited in how UV maps can be applied to textures. It supports only two UV maps per material, and they must be used in a particular way:

  • UV2 applies to ambient occlusion and light maps.
  • UV1 applies to everything else.

@Mykita I saw your post to the glTF GitHub. Glad you got it working! Please keep up the pressure to ensure all viewers are compatible with valid glTF files.