I have experimented with GLTF, FBX, and OBJ Loaders in Three.js. I am wondering what file type works best with Three.js. Every tutorial I watch uses GLTF or GLB file extensions.
I am very familiar with 3d software, like 3DS Max and Blender, but relatively new to Three.js.
I guess by which is best, I mean which will give the best results and work well, without lagging or having issues loading.
FBX is the probably the best supported format across DCC software with the most features (unlike obj for example) and the loader of THREE supports most needed features, GLTF/GLB is fairly new and some software doesn’t support it yet (a lot like Blender already do), but it is the best suited direct-format for THREE as it is quite flexible and supports binary with all being ready to use without a slow/expensive decoding/parsing/converting process. Also extensions like DRACO compression.
But also notice, with GLTF, FBX etc being a standard format and being directly basically downloadable, your assets are easily accessible for theft.
I personally use FBX/GLB in my workflow in development, but made a asset post-processing command shell that converts it into a custom format, creates thumbnails and various other automated steps, but the point is that it adds a very basic yet most relevant protection. There has been a longer topic around protection, not diving into it just saying there is no 100% protection technically possibly, but you also shouldn’t serve your assets on a silver tablet if you don’t intent them to be used by others
I clearly vote for glTF since a proper usage of FBXLoader
mainly depends on what software produced your FBX files.
The problem is that there is no official, open FBX standardization which often lead to interoperability issues in the past. Especially as a beginner, you will have it easier when using glTF. Besides, GLTFLoader
has a lower parsing overhead compared to FBXLoader
due to glTF’s JSON usage. It’s also more easy to integrate compression technologies.
Yeah i agree, with FBX i’m mainly refering for development as interchange format between software which is not necessary if your tools support GLTF, for production/loading with THREE if not a custom format, GLTF is the best option.
Cinema 4D for example only added GLTF support since version 20, no official exporter plugin for older.
BTW: There is also an official guide about this topic: Loading 3D models
This was all super helpful, thanks everyone.
1 Like