I’m on the final parts of my GLTF loader, after working on it over a year (not continuously). I’m noticing that many importers have problems with the format. Blender for example will fail to load this model’s textures, though my own loader and Windows 3D Viewer succeed:
This means the format is too complicated. Maybe not for me, but if common applications can’t support it reliably (after how many years?) it affects my ability to recommend the format for model IO.
These elements should be considered for removal or streamlining in version 3.0:
- Data from multiple files, other than textures.
- Skins (completely unnecessary for weighted vertices)
- Default bone pose should be weighting pose.
- Buffer views / accessors / buffers design is extremely over-engineered.
- Get rid of Base64 data, just use text or binary.
- Flipped faces when matrix determinant < 0
I know somebody lovingly crafted the design of each of these items and thought they were being oh-so-clever, and that is the problem. A common file format should be as simple as possible while still supporting the requirements. For me the benefits were worth investing time, but I personally know people in charge of software products who won’t touch it for these reasons.
There is some point where complexity of the specification can be considered a bug, and effort should be made to fix that bug rather than trying to fix all the bugs in all the importers and exporters out there. I managed to wrangle the whole thing, but its complexity is holding back adoption and compromising the quality of its support.
Anyways, after working with the format extensively, that’s my $0.02.