KhronosGroup / glTF-Project-Explorer

Tool to provide a filterable registry of glTF community projects.
Apache License 2.0
87 stars 46 forks source link

Allow specifying supported extensions #144

Open weegeekps opened 2 years ago

weegeekps commented 2 years ago

One aspect that could also be covered by the project explorer is the support for extensions. There are many viewers, importers and exporters that support different extensions, and having a place to look up this, as a "feature matrix", may be helpful.

In fact, this could - as a first approximation - already largely be covered by the existing project explorer infrastructure. The supported extensions could be treated in a similar way as the existing tags:

{
  "name": "Example of a plugin for some authoring software",
  "type": ["plugin"],
  "outputs": ["glTF 2.0"],
   ...
   "inputExtensions" : ["KHR_lights_punctual", "KHR_draco_mesh_compression"],
   "outputExtensions" : ["KHR_lights_punctual", "KHR_materials_ior" ]
}

This would allow the existing search+filter structures to be used on these tags as well.


One could consider different levels of integration or organization for that. Roughly: One could pull out this aspect into a dedicated page, database, or search tool (for example, to show it on one page as an actual matrix, with the tools in the rows, the extensions in the columns, and ✔️ `s that indicate support). But regardless of the final presentation, I think that at least having this information in a central place in the project explorer database could be really useful.

Originally posted by @javagl in https://github.com/KhronosGroup/glTF-Project-Explorer/issues/122#issuecomment-944377531

madjin commented 6 months ago

This is a great idea, I had a difficult time finding projects that utilized some of the extensions I was interested in (like the KHR_xmp_json_ld one) and think it'd be awesome to consolidate / filter in the project explorer page

gm3 commented 6 months ago

This is a great idea

aaronfranke commented 6 months ago

When we implement this, we should have 2 sections for extension support:

It might also be useful to provide more information with each extension, such as the first known version of the software with support for the extension, or a link to the third-party addon / plugin that adds support.

Why: I don't want people to think "Why hasn't \<software here> implemented \<important extension>?" then they go implement it and find out it's already a thing and the PR is rejected. Similarly I don't want people to see it on one big list of supported extensions and then they try to import their assets and it doesn't work because they didn't know a third-party plugin was required.