godot icon indicating copy to clipboard operation
godot copied to clipboard

FBX: Update ufbx to v0.14.0

Open bqqbarbhg opened this issue 1 year ago • 4 comments

Update to ufbx to version v0.14.0, which is currently being finished. I'm opening a draft PR to facilitate testing of the new version and so we can discuss a few of the newer features.

Some highlights of the ufbx updates up to v0.13.0:

  • Fixed some core parsing issues, meaning files that should load didn't
    • Fix failing to parse 'Z' type
    • Fix threaded parsing of 'b' arrays
    • Fix loading of files with missing mapping information
  • Internal optimizations
    • Fixed internal performance regression using slow little endian reads
    • Optimized the built binary to be ~30kB smaller
  • Baking animations with stepped tangents results in more robust interpolation

Fixes from nearly complete v0.14.0, many based on Godot testing (#90986):

  • Fix orthographic camera unit scaling
  • Add UFBX_INHERIT_MODE_HANDLING_COMPENSATE_NO_FALLBACK to fix some non-scaled inheritance cases
  • Fix handling of non-animated Blender blend shape weights
  • Fix FBX version 6100 pivot conversion failing with skinned meshes
  • Fix triangulation of N-gons with either between [32, 64] corners or having very complex topology

Tasks for me before I consider this safe for merging:

  • [x] Run through an abridged dataset using the new ufbx version
  • [x] Merge ufbx https://github.com/ufbx/ufbx/pull/121

bqqbarbhg avatar May 03 '24 18:05 bqqbarbhg

Seems like there's three tasks remaining:

  1. Run through an abridged dataset using the new ufbx version
  2. Merge ufbx https://github.com/ufbx/ufbx/pull/121
  3. Press ready to review and merge here

fire avatar May 05 '24 23:05 fire

The dataset looked fine at a glance, didn't have the time to do a proper labeling this time.

The only open issue is the use_blender_pbr_material mentioned above with the caveats discussed, I don't really have a strong opinion either way.

Ready to merge by me.

bqqbarbhg avatar May 06 '24 20:05 bqqbarbhg

I would not support blender pbr since it seems to not handle round tripping well?

fire avatar May 06 '24 21:05 fire

Disabled it for now in that case

bqqbarbhg avatar May 06 '24 21:05 bqqbarbhg

If it's ok can you rebase the pr so it's one commit?

fire avatar May 07 '24 08:05 fire

Could you amend in this documentation change too?

diff --git a/thirdparty/README.md b/thirdparty/README.md
index 4a7ab7314a..8c07da5d24 100644
--- a/thirdparty/README.md
+++ b/thirdparty/README.md
@@ -894,7 +894,7 @@ number and run the script.
 ## ufbx
 
 - Upstream: https://github.com/ufbx/ufbx
-- Version: git (v0.11.1, 2024)
+- Version: 0.14.0 (80ff790ab36507b99ec7e4ef55b9cfb076ce821b, 2024)
 - License: MIT
 
 Files extracted from upstream source:

akien-mga avatar May 07 '24 10:05 akien-mga

Could you amend in this documentation change too?

Sure, thanks! My bad for missing that one, should be fixed now.

bqqbarbhg avatar May 07 '24 11:05 bqqbarbhg

Thanks!

akien-mga avatar May 07 '24 11:05 akien-mga