f3d-app / f3d

Fast and minimalist 3D viewer.
https://f3d.app
BSD 3-Clause "New" or "Revised" License
2.67k stars 188 forks source link

Add model/material/hierarchy and information #18

Open mwestphal opened 2 years ago

mwestphal commented 2 years ago

Context F3D is able to load many type of files. For full scene format, F3D relies on each individual importers to provide meta data information about the file. However, some importers are not great at providing such info.

To recover such info cleanly, we probably need #653

Notes more info here: https://gitlab.kitware.com/f3d/f3d/-/issues/174

AmazingMrX commented 1 year ago

I'd like to see this model hierchy added just so users can toggle visibility of the model components. Right now, F3D renders everything by default. However, complex models may be designed to only be viewed in an arbitrary configuration of components that's only a subset of all components present in the file.

Example: An FBX file containing a character model with multiple attached alternative outfits.

It may be possible that this could apply to materials and textures as well. Say, for instance: An object in a video game has multiple states represented by differing textures that are swapped programmatically.

It would be nice to accurately view these assets in F3D with some simple visibility toggles on a hierarchical list.

mwestphal commented 1 year ago

That's an interesting feature ! Could you share such a FBX file to see if it would be feasible ?

AmazingMrX commented 1 year ago

Yep! Here is a freely available model of a living room in a variety of formats. I've got the FBX version temporarily hosted here on Autodesk's online Viewer (with textures) so you can readily see the hierarchy chart. Click "Model Browser" in the upper left to see the list with everything that can be toggled in the file. I'm basically asking for the same functionality in F3D.

mwestphal commented 1 year ago

Ok I see that. We need to check what assimp (what we are using to read fbx) is providing us, then we need to see how to expose some kind of block selection mechanism. That may come at some point but this is likely in the long term feature, definitely after #653 .

Wdyt @Meakk ?

Meakk commented 1 year ago

That's an interesting feature indeed.
I don't think it's necessarily difficult but it introduces some kind of advanced GUI widgets, so do we want that? If yes, with imgui I guess?

mwestphal commented 1 year ago

UI to control that is another subject and would require imgui. We can just list block and provide a option to control wich block to show for starters.

mwestphal commented 7 months ago

@AmazingMrX please create a dedicated issue for your idea :)