COLLADA2GLTF
COLLADA2GLTF copied to clipboard
Move GLTF library to its own repository?
We're using the GLTF library in the Maya2glTF exporter. This library seems useful on its own, outside the scope of Collada2GLTF. Would moving the GLTF lib to a dedicated repository make sense?
I think that it would; there has been some demand for a dedicated C++ glTF library.
It would need a different name though, since KhronosGroup/glTF already exists and is the specification. It could just be glTF-cpp, but I'm not really in love with that.
Maybe glTF-serializer
, or since it is written in c++, glTF-cpp-serializer
?
I don't know the specifics of the COLLADA2GLTF writer or the other C++ ones listed here but is it worth promoting and maintaining the COLLADA2GLTF writer on its own as a separate project when some of the others might already be suited?
I didn't know these other libs, I assumed Collada2glTF was the best way to get started for writing another exporter. I'll look into the other standalone libs then. But why doesn't the Collada2glTF exporter uses any of these standalone glTF serialisation libraries? I guess these evolved independently?
But why doesn't the Collada2glTF exporter uses any of these standalone glTF serialisation libraries? I guess these evolved independently?
That is correct.
Taking a quick look at those libs marked for 2.0:
-
TinyGlTF - can't write glTF 2.0
-
yocto-gltf - has a dependency on boost
-
glTF2-loader - only reads glTF, can't write it
-
gltfpp - again, can't write glTF
-
TGen - isn't a general purpose glTF serializer
-
Microsoft.glTF.CPP - if this is open-source, I can't find a link to the source code
is it worth promoting and maintaining the COLLADA2GLTF writer
One note, the GLTF sub-library in this project is completely separate from the COLLADA2GLTF writer. The writer just uses it for serialization.
If there is a good alternative to the serializer that I wrote here that is as feature complete, I'm happy to use it, but I haven't seen one.
but is it worth promoting and maintaining the COLLADA2GLTF writer on its own as a separate project
And @pjcozzi, just to be clear, I'm not trying to trivialize the cost of this, and I acknowledge that I am probably at least a little bit biased towards the code that I wrote.
With that being said, I think there is space for a C++ glTF library that strictly concerns itself with serialization, deserialization and data structure optimization/manipulation without being part of some type of loader or renderer.
But why doesn't the Collada2glTF exporter uses any of these standalone glTF serialisation libraries? I guess these evolved independently?
That is correct.
@Ziriax the first version of COLLADA2GLTF far predates any of the other C++ libraries, and even predates my involvedment with glTF. :)
With that being said, I think there is space for a C++ glTF library that strictly concerns itself with serialization, deserialization and data structure optimization/manipulation without being part of some type of loader or renderer.
@lasalvavida if there is "whitespace" here and you or someone is able to provide some level of maintenance, it could be a good thing. I will discuss with the working group today.
Hi @lasalvavida @Ziriax - sorry for the slow response. Microsoft.glTF.CPP could still be worth a look as I don't think there is anything preventing you from using it in an open-source project. Of course, if you really feel strongly that the COLLADA2GLTF reader/writer should be separated, then go for it. We just don't want to fragment the glTF ecosystem too badly and make it hard to know which projects to select.
Also, thanks for all the great work recently on COLLADA2GLTF and Maya2glTF - these are really starting to get some attention. Congrats!
CC @sbtron
Microsoft.glTF.CPP could still be worth a look as I don't think there is anything preventing you from using it in an open-source project
Licensing-wise maybe not, but their NuGet package only provides windows binaries. I would likely have to do something with Mono to even get it working on Linux/OSX. Also, since the source code is not public (as far as I am aware), switching to it would make my work on compiling COLLADA2GLTF with emscripten a complete non-starter.
If Microsoft is interested in making their library open source and cross-platform, that would be terrific, but if they aren't, then it isn't a suitable candidate for this project.
Also, thanks for all the great work recently on COLLADA2GLTF and Maya2glTF - these are really starting to get some attention. Congrats
Thanks!
Also name idea: OpenGLTF, as in OpenCOLLADA.
Licensing-wise maybe not, but their NuGet package only provides windows binaries
MaxOS libraries available in a separate nuget - https://www.nuget.org/packages/Microsoft.glTF.macOS.CPP/
If Microsoft is interested in making their library open source and cross-platform
The library should already be cross platform. We do plan to open source it but don't have an exact ETA for it.
@robertlong made a great first step to use CMake for Maya2glTF, in order to make it multi-platform. Unfortunately it now has to use COLLADA2GLTF as an external project, so that feels very wrong, and results in long initial build times.
It seems the Microsoft GLTF SDK is now open source, so I might consider using this at some point.
Unfortunately it now has to use COLLADA2GLTF as an external project, so that feels very wrong, and results in long initial build times.
I don't know exactly what you're doing, but if you aren't already, you should be able to call add_subdirectory
in CMake on just the GLTF subfolder which will only build the GLTF lib and not the rest of COLLADA2GLTF.
It seems the Microsoft GLTF SDK is now open source, so I might consider using this at some point.
Exciting! Looks like it doesn't support glTF 1.0 export or Draco compression though which would be two pretty big steps back for this project, so we will probably stick with the implementation we have for now.
@Ziriax, I left a comment on the Maya2glTF pull request that should help speed up your build