I don't really have a lot of 3D models to view, but I did find it interesting to see how well the Windows API crate for Rust integrates with the COM stuff that Microsoft likes to use for these APIs. It's farf from trivial, but it's quite clear code to read and doesn't require too much language hacking. I've never thought it would be this easy to extend the Windows shell with anything other than C(++)!
I tried to use sharpshell and C# to do this at first, but the tools for sharpshell are too old and not maintained for years.
Then I found microsoft/windows-rs and it was very easy to implement the COM interface using Rust, all thanks to the work of microsoft/windows-rs, but there is not a lot of documentation about this and you need to read a lot of code.
You're not wrong, but every time someone omits "written in Rust", someone comments about how great it is that people don't add that to the title anymore.
well, not really. you load the data and pass it to the GPU. There's no real work to do on the CPU. I'm not saying it's trivial to write a viewer but to doesn't require performant code.
I've written a GLTF viewer in JavaScript. You parse the JSON, pass the data to the GPU, apply shaders. It requires knowledge of how to render 3D and PBR but it's a day or 2 project to get working if you know the topic and no part of it requires any perf.
Oh nice. Sometimes when I'm iterating on a model really fast I'll have a whole list of model(1), model(2), etc files and having thumbnails would be a great help in differentiating them.
FWIW it would be nice for the README to link to both Filament and Assimp, since they're doing quite a bit of the heavy lifting here.
Also because, in the case of Assimp, it supports a lot more formats than you list. However even for the listed formats, it has several issues. Especially for reverse engineered formats, which might not be an intuitive thought for many users who don't know what's backing this.
Currently it is not released in github release, you need to build it manually. It is written in rust, if you don't know much about rust, let me know I can help you.
In fact, this is just a preview version, there is still a lot of room for speed optimization, such as the current re-initialization of rendering contexts for each generation, caching contexts can save a lot of time