Certain models materials not showing correct normals/shadows in Android browsers using r118

When displaying some models on Android Chrome + FF, it displays the shadow/normals back to front …


…so a shirt is dark on the front where it’s lit, and light on the back when in shadow. The duck.gltf is showing shadows correctly. They are all GLTF.

iOs, Mac, PC, all display fine. Perhaps I should go back to an earlier version of Three.js - where can I find the earlier versions of gltfLoader?

I think the problem may be coming from models that were created using Adobe Dimension.

Is there perhaps a way I could edit the file in blender and re-export correctly?
Or is there a version of three that might work - if so, where to find corresponding gltfloader.js etc please.

I’ve tried all sorts of code - including using a copy the three gltf loader example to no avail. It’s not easy for me to quickly share the code but I was hoping someone might be able to help before I have to unpick it.

The model I have is licensed to me, but I suspect it’s the same for any Adobe Dimension file.

Google Pixel 4 XL, Android 10

You can always travel back in time by checking out the repository at a specific release. Or you use service like githack which allows to include library files from previous releases like so:

https://rawcdn.githack.com/mrdoob/three.js/r105/examples/js/loaders/GLTFLoader.js

Just replace r105 with the release you want to use. But please make sure that all three.js files you are using in your project are from the same release.

BTW: For investigation purposes, it would be good to know which release introduced the rendering issue on Android.

Thank lots, I didn’t know that. I now have partial success…

I experimented and found that r91 works, and r92 doesn’t. So that’s good, I can use 91. However, it’s not surprising that the model doesn’t look anywhere near as good using 91. I built a small scene for the shirt to show:

I think I’ll have to stay with 91 then, there aren’t any other hacky things I could try to remedy this?