glTF is a new format, created by khronos (openGl, openCL, collada, others), designed to share game assets and scenes beetween engines. Mostly designed as a webGL exchange format, it turns out is quite good for normal assets.
UE4.19 preview has a experimental importer for it, and right now its extremelly promising. This is an open format, that, once final, should work better than FBX, and actually work great with Blender.
I went to test the 4.19 preview and started doing a few experiments with it. Right now its much superior to FBX for some simple cases.
The cool point about glTF is that the same file holds a full scene, with multiple 3d objects, each of them with animation, and each of them with materials, and each material actually imports as a material graph, and with textures.
This means that glTF is **one click import and it setups every single mesh in your scene with correct materials and textures, from one file **This allows you to setup your game assets in blender, with a blender material graph and textures, and import it directly into ue4, with everything getting translated.
This gif shows the workflow:
My tests have resulted in this:
Basic static mesh support works. Skeletal meshes and animations are not supported yet.
Each of the objects in the scene will become a single static mesh in unreal. This is good for a modular pack, but very bad for complex multiobject files. An option to merge objects would be great (like in FBX import). This fails spectacularly if you try to import one of the complex models from https://sketchfab.com/features/gltf , like the unity robot model (he imports as a ton of tiny objects) The same happens with the drone mode;.
Interestingly enough, Blender export works by default, without any setup. There are no more scale ******** to deal with as with FBX, and also it will use the correct axis by default, so no flipped models or badly scaled models. Great improvement over FBX. It “Just Works”
All objects in the scene will import as static meshes, with their scale and position reset. If you have any scale or position at “object” level in blender, when importing into unreal this will be reset. An option to apply the scale/position would be great, but working around it is absolutely trivial.
Smooth groups export perfectly by default, exactly as they are with blender (no more import normals or not as with FBX). Another great improvement over FBX
Whole scenes cant be imported well, as every object will just become a separated static mesh centered at origin, but without the “scene hierarchy”. The importer having the option to create a blueprint that holds the scene information would be a huge plus, and would allow one to create a whole scene in blender and import it as 1 object into ue4.
The material/texture import is a lot better than i expected, and its what makes this a superior format and workflow over FBX (for static meshes) right now. A blender cycles node tree will get completely translated to UE4, as long as it follows the roughness/metallic workflow. The fact that the importer already supports textures and recreates the material is awesome.
The one that benefits the most from this is Blender, as FBX support has allways been terrible, but gltf already works well. Once Blender 2.8 releases, you will be able to author your meshes from it, using the PBR viewport, and then export the file to UE4 and it will keep all the material setup, looking similar.
If unreal also adds glTF export, you would be able to extract any game asset in unreal, and import it into blender for use in a cinematic or a render with the pathtracer. With all the materials being compatible.