-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Add bevy_fbx, an FBX loader based on ufbx #19534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The generated |
It looks like your PR has been selected for a highlight in the next release blog post, but you didn't provide a release note. Please review the instructions for writing release notes, then expand or revise the content in the release notes directory to showcase your changes. |
8324b93
to
8bae92e
Compare
as it uses a native dependency, I don't think it should be part of the default features |
Agreed with @mockersf. FBX support would be very nice, but C++ dependencies add a lot of pain to the out-of-the-box experience in many cases, so let's make it opt-in. |
The generated |
ufbx is a self-contained FBX loader made up of just two files— |
You added a new feature but didn't add a description for it. Please update the root Cargo.toml file. |
11c909c
to
f39dd2d
Compare
I know it's still WIP, but it would be way easier to review if the main load() function was split into multiple functions. A bit like how bevy_gltf has load_materials, load_image, load_node, etc. Also, once the PR is ready to merge I think it should only have one .fbx file in the asset folder. It's a good feature to have but we need to keep the size of the repo in check. |
I will refactor the main load() function following |
You added a new feature but didn't add a description for it. Please update the root Cargo.toml file. |
Thought: if |
I suspect that major portions of this contribution are AI generated. Em dash, overcommenting, commenting about "in the actual implementation..." and some other points discussed on Discord with other members. Nominating to close as per bevyengine/bevy-website#2204 Please correct me if I'm wrong! |
I admit I made use of AI tools a lot to help me in this PR. I don't mean to deliberately violate community policies when I started in June 8, at that time Bevy Org's AI policy doesn't even exist, and I didn't know about it until today. I will close this in accordance with the AI policy, and I commit to adhering to the community code of conduct. Anyway, the PR is in good shape now (especially good animation support) and if the AI policy is released earlier, I will follow the policy and won't use any AI tools. |
As someone who has been following this, but isn’t as familiar with the core workflow as I would like, what is happening? Will this be merged, or is it dead, or does it need more feedback? |
Many Bevy maintainers want a version of this, so someone can contribute a new PR that implements it in a similar way. |
@BenjaminBrienen Beyond this PR including AI work did you find and architectural flaws with the implementation? I might give this a shot in early October with this as a reference. Maybe with @VitalyAnkh support if they are up for it. |
My review and opinion is not the most valuable, but I think basing it on ufbx like this is a good idea. It is a good direction. |
@mholiv I could help you with a new bevy_fbx crate based on ufbx, without the interverntion of AI. I'm still interested in fbx and passionated with bevy. |
Or it might make sense for you to take lead here @VitalyAnkh given you know the code base as it is. I am just a passionate dev. Who want's to see the engine improve. That and the 3D artist I am working with REALLY isn't a fan of gltf lol. |
I would be in support of this, provided this remains as a optional feature if it is using ufbx. We generally try to keep non-platform C/C++ build dependencies out of the default. |
Objective
ufbx
Solution
bevy_fbx
, an FBX loader based on ufbx.Testing
load_fbx
,asset_loading
.Showcase
TODO
While a showcase should aim to be brief and digestible, you can use a toggleable section to save space on longer showcases:
Click to view showcase