Most game engines use the FBX format for importing 3D scenes, which is
definitely one of the most standardized in the industry. However, this
format requires the use of a closed library from Autodesk, which is
distributed with more restrictive licensing terms than Godot.

The plan is, sometime in the future, to offer a binary plug-in using GDNative.

Autodesk added built-in COLLADA support to Maya and 3DS Max, but it’s
broken by default and should not be used. The best way to export this format
is by using the
OpenCollada
plugins. They work well, although they are not always up-to date
with the latest version of the software.

The most powerful one, called godot-blender-exporter.
It uses a .escn file, which is kind of another name for a .tscn file (Godot scene file);
it keeps as much information as possible from a Blender scene.

The ESCN exporter has a detailed document describing
its functionality and usage.

Materials can be stored within the scene or in external files. By default,
they are stored in external files so editing them is possible. This is because
most 3D DCCs don’t have the same material options as those present in Godot.

When materials are built-in, they will be lost each time the source scene
is modified and re-imported.

Array index : 32-bit or 16-bit unsigned integer based on how many elements there are.

Additional info:

UV2 = The second UV channel for detail textures and baked lightmap textures.

Array index = An array of numbers that number each element of the arrays above; i.e. they number the vertices and normals.

In some cases, this might lead to loss of precision, so disabling this option
may be needed. For instance, if a mesh is very big or there are multiple meshes
being imported that cover a large area, compressing the import of this mesh(es)
may lead to gaps in geometry or vertices not being exactly where they should be.

If textures with normal mapping are to be used, meshes need to have tangent arrays.
This option ensures that these are generated if not present in the source scene.
Godot uses Mikktspace for this, but it’s always better to have them generated in
the exporter.

Godot provides many options regarding how animation data is dealt with. Some exporters
(such as Blender) can generate many animations in a single file. Others, such as
3DS Max or Maya, need many animations put into the same timeline or, at worst, put
each animation in a separate file.

Most 3D export formats store animation timeline in seconds instead of frames. To ensure
animations are imported as faithfully as possible, please specify the frames per second
used to edit them. Failing to do this may result in shaky animations.

When animations are imported, an optimizer is run, which reduces the size of the animation considerably.
In general, this should always be turned on unless you suspect that an animation might be broken due to it being enabled.

It is possible to specify multiple animations from a single timeline as clips. Specify from which frame to which frame each
clip must be taken (and, of course, don’t forget to specify the FPS option above).

In many cases, it may be desired to make modifications to the imported scene. By default, this is not possible because
if the source asset changes (source .dae, .gltf, .obj file re-exported from 3D modelling app), Godot will re-import the whole scene.

It is possible, however, to make local modifications by using Scene Inheritance. Try to open the imported scene and the
following dialog will appear:

In inherited scenes, the only limitations for modifications are:

Nodes can’t be removed (but can be added anywhere).

Sub-Resources can’t be edited (save them externally as described above for this)

Many times, when editing a scene, there are common tasks that need to be done after exporting:

Adding collision detection to objects

Setting objects as navigation meshes

Deleting nodes that are not used in the game engine (like specific lights used for modelling)

To simplify this workflow, Godot offers a few suffixes that can be added to the names of the
objects in your 3D modelling software. When imported, Godot will detect them and perform
actions automatically:

Option “-colonly” can also be used with Blender’s empty objects.
On import, it will create a StaticBody with
a collision node as a child. The collision node will have one of a number of predefined shapes,
depending on Blender’s empty draw type:

Animation clips in the COLLADA document that start or end with the token “loop” or “cycle”
will be imported as a Godot Animation with the loop flag set. This is case-sensitive and
does not require a hyphen.

In Blender, this requires using the NLA Editor and naming the Action with the “loop” or
“cycle” prefix or suffix.