• 3D
  • Weird distortion on some devices

I have encountered a strange effect while doing some 3D experiments. I have a character mesh that is rigged, uses shape keys and animations. And is exported using the game rig tool add-on (however I do not think this issue is related to GRT). And I have imported it into my game, and after a whole lot of fiddling, I got it to do what I intended. But then I tested the game on another PC and the mesh looked completely deformed. And now I have tested it on an android and it looks also deformed and mutated.

On my normal PC:

On android:

Has anyone come across this before? Or any advice on where I should look for the culprit?

I am using godot 3.4.4

It could be a scale issue. On the mesh, all scale should be at 1.0. You can select the mesh in Blender and choose Apply -> All Transforms. The bones also have to be at 1.0 scale. Also, make sure all modifiers have been applied.

looks more like a weighting issue, or possibly some data conversion/corruption in relation to vertex weights.

Thanks cybereality and Megalomaniak. I appreciate your input, and time you have taken to answer my issue :) .

The next course of action is more or less splitting everything out and adding it back in to see where it fails.. I was just hoping someone had come across something similar and could point me in the correct direction.

Another thought: make sure you don't have any duplicate/double vertices occupying the exact same coordinates.

@Megalomaniak said: Another thought: make sure you don't have any duplicate/double vertices occupying the exact same coordinates.

Yes, I will check that also.

Are you using GLES3 or GLES2? Using GLES2 is strongly recommended when targeting mobile devices. If using GLES2, remember to enable software skinning in the project settings too.

Also, try disabling octahedral compression in the mesh import settings then export the project to Android again.

Thank you @Calinou for your input and knowledge

@Calinou said: Are you using GLES3 or GLES2? ... At the moment it I am using the fall back flag, so I am not sure which one it chooses. I will make specific exports and try them individually.

@Calinou said: ... If using GLES2, remember to enable software skinning in the project settings too.

Also, try disabling octahedral compression in the mesh import settings then export the project to Android again. Will also try these.

Also, I realize I might have not been clear at the beginning. I get the error also on some PCs. It is just that, at the moment, the only device I have access to and displays the error is my android. I have even tried the exact same binaries on an emulator (on my work PC) and it worked fine. I am thinking a group of graphics cards might play a part here.

Solution: Remove multiple material slots.

I first "Merged Vertices by Distance". Where it removed 9 Vertices. But that didn't help. Then I checked the normals, but they were all correct.

Then I noticed some of the distortion correlated with some of the material i had added to as markers while modeling. So I first tried setting all the materials under mesh->surfaces- -1 -2 -3 ...->material to a new spacial material. This helped slightly. It removed the distortion by just not rendering those faces. So I went back and reset the material in blender (edit - I mean just use 1 material for all faces) and that fixed it all.

Thanks @cybereality , @Megalomaniak and @Calinou for your time and knowledge.