I created a terrain mesh in Blender using sculpting tools, texture-painted the mesh, then exported it to GLTF. In Godot, I created a trimesh sibling collision shape from the editor, and it worked as expected. So far, so good.
Here’s the mesh in Blender. The trimesh collision shape from Godot exactly matched the edge lines shown here in Blender.
Then I modified the mesh in Blender, re-exported to GLFT, and re-created the trimesh collision sibling from within the Godot editor. This time, the trimesh shape did NOT match the mesh. It is shown here.
In blender your mesh is represented by quads, triangulate them and then you could accurately compare.
Since the collision and the mesh are in the exact same place you are probably experiencing z fighting so it will be hard to see the collision mesh over the visual mesh.
Godot also supports hightmap collision shapes, a good terrain plugin will use this for more optimised collision.
That’s true about the Blender vs. Godot screenshots; but it was not an issue on the first export, so I can’t see what it would be an issue on the second export. On the first export, the triangulated collision mesh was a perfect match for the quad mesh. I have pulled the collision mesh away from the mesh to better illustrate how this is not z-fighting.
Godot’s trimesh is not accurately representing the mesh, though it was accurate before I modified the mesh in Blender.
If you modified the mesh then the generated collision sibiling will not be updated, it’s a one-off command. If you want a collision shape to always be up to date with the most recent import you can set a automatic collision shape as part of the advanced import settings on your .glb/.gltf file or you can create a duplicate mesh in blender with the suffix -colonly