by dpJudas » Thu May 17, 2018 9:00 am
There seems to be some misconception here that I'm willing to implement any format. My position is that writing my own simple format is the easiest way to get a better model format (format is already 95% done by the way). I've given my reasons in the past, but I can summarize it as me preferring a format specifically tailored for the engine than a generic format that the engine needs to adapt to. If proper FBX and Blender converters are written such a format is just as good as any other format.
I do not like universal exchange formats because generic is incompatible with being specific. If a model format supports a specific layout, and that layout is unsuitable for the engine, then it becomes the engine's problem at load time. I.e. IQM allows the normals to be missing - suddenly the engine now needs to try create that as it is actually a requirement for GZDoom to have normals. What if the UV coordinates are missing? IQM allows that too. Sure, you could declare that a IQM model must have UV coordinates in float format to be a valid mesh, but now suddenly the generic format isn't so generic anymore and the converter creating the IQM file can't just create it any way it wants to. Then add a standard where 100 people gets to play chef and before you know it you're fighting one of those beasts like Windows Communication Framework that can theoretically send web services over pigeons, but in actuality only works if everything is in a specific undocumented configuration - that's what COLLADA became. Will that be the fate of GLTF too? I don't know, but I am sure as hell not going to be one of those bleeding trying it out. When it is a generally accepted and used exchange format by all the major modelling tools and major game engines, maybe THEN it is time for a hobby game engine like GZDoom to use it.
This is just my 5 cents. Feel free to disagree with my position. Anyone else is more than welcome to write model loaders for other formats (assuming Graf accepts the PRs), but I won't be the one doing the work.
There seems to be some misconception here that I'm willing to implement any format. My position is that writing my own simple format is the easiest way to get a better model format (format is already 95% done by the way). I've given my reasons in the past, but I can summarize it as me preferring a format specifically tailored for the engine than a generic format that the engine needs to adapt to. If proper FBX and Blender converters are written such a format is just as good as any other format.
I do not like universal exchange formats because generic is incompatible with being specific. If a model format supports a specific layout, and that layout is unsuitable for the engine, then it becomes the engine's problem at load time. I.e. IQM allows the normals to be missing - suddenly the engine now needs to try create that as it is actually a requirement for GZDoom to have normals. What if the UV coordinates are missing? IQM allows that too. Sure, you could declare that a IQM model must have UV coordinates in float format to be a valid mesh, but now suddenly the generic format isn't so generic anymore and the converter creating the IQM file can't just create it any way it wants to. Then add a standard where 100 people gets to play chef and before you know it you're fighting one of those beasts like Windows Communication Framework that can theoretically send web services over pigeons, but in actuality only works if everything is in a specific undocumented configuration - that's what COLLADA became. Will that be the fate of GLTF too? I don't know, but I am sure as hell not going to be one of those bleeding trying it out. When it is a generally accepted and used exchange format by all the major modelling tools and major game engines, maybe THEN it is time for a hobby game engine like GZDoom to use it.
This is just my 5 cents. Feel free to disagree with my position. Anyone else is more than welcome to write model loaders for other formats (assuming Graf accepts the PRs), but I won't be the one doing the work.