Alembic/USD: use geometry sets to import data #115623

Merged
Jesse Yurkovich merged 14 commits from kevindietrich/blender:abc_usd_geometry_sets_review into main 2024-02-28 03:02:48 +01:00

14 Commits

Author SHA1 Message Date
Jesse Yurkovich b9ec8722b4 Formatting 2024-02-27 17:54:36 -08:00
Jesse Yurkovich 6482dc469b Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review
buildbot/vexp-code-patch-lint Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-arm64 Build done. Details
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
2024-02-27 16:51:47 -08:00
Jesse Yurkovich 2c87cafca1 Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-25 12:09:10 -08:00
Jesse Yurkovich 9e2eae5c2b USD: read in all relevant bezier handle data properly
buildbot/vexp-code-patch-lint Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-arm64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
2024-02-20 12:42:44 -08:00
Jesse Yurkovich 531d178e80 Fix Alembic crash when reading cyclic bezier curves 2024-02-20 12:41:54 -08:00
Jesse Yurkovich 62c34b0d09 Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-20 11:05:02 -08:00
Jesse Yurkovich 98134393c1 Fix previous merge issues 2024-02-07 13:40:44 -08:00
Jesse Yurkovich d27db76bbe Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-07 12:38:50 -08:00
Jesse Yurkovich 274057cf1f Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-06 21:24:20 -08:00
Jesse Yurkovich 4afb0af64a Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-01-19 11:07:50 -08:00
Jesse Yurkovich cb9829f9bf Fix USD Shape animations 2024-01-10 13:30:48 -08:00
Jesse Yurkovich 300a3a6198 ATTR_DOMAIN_POINT to bke::AttrDomain::Point 2024-01-10 00:40:03 -08:00
Jesse Yurkovich ddc6fd30bd Fix conflicts 2024-01-09 21:32:02 -08:00
Kévin Dietrich 14fb9edc41 Alembic/USD: use geometry sets to import data
This rewrites the Alembic and USD data importers to work with and
output GeometrySets instead of Meshes.

The main motivation for this change is to be able to import properly
point clouds, which are currently imported as Meshes, and curves
data, which suffer from a lot of issues due to limitations of
legacy curves structures (fixed by the new curves data-block) and are
also converted to Meshes. Further, for Curves, it will allow importing
arbitrary attributes.

This patch was primarily meant for Alembic, but changes to USD import
were necessary as they share the same modifier.

For Alembic:
- there should be no behavioral changes for Meshes
- points are imported as PointClouds
- curves are imported as the new Curves object type which fixes an
  important bug (see note at the end)

For USD:
- there should be no behavioral changes for Meshes
- curves are imported as the new Curves object type

Note that the current USD importer does not support loading PointClouds,
so this patch does not add support for it.

For both Alembic and USD, knots arrays are not read anymore, as the new
Curves object does not expose the ability to set them. As knots arrays
from other software were always a little problematic to interpret, this
might not really change anything for users.

This fixes #58704: Animated Alembic curves don't update on render

(NOTE: it could be that the fixed bug was also present in USD.)
2023-12-05 22:35:00 +01:00