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
b9ec8722b4 Formatting 2024-02-27 17:54:36 -08:00
6482dc469b Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review
Some checks failed
buildbot/vexp-code-patch-lint Build done.
buildbot/vexp-code-patch-linux-x86_64 Build done.
buildbot/vexp-code-patch-darwin-arm64 Build done.
buildbot/vexp-code-patch-darwin-x86_64 Build done.
buildbot/vexp-code-patch-windows-amd64 Build done.
buildbot/vexp-code-patch-coordinator Build done.
2024-02-27 16:51:47 -08:00
2c87cafca1 Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-25 12:09:10 -08:00
9e2eae5c2b USD: read in all relevant bezier handle data properly
Some checks failed
buildbot/vexp-code-patch-lint Build done.
buildbot/vexp-code-patch-linux-x86_64 Build done.
buildbot/vexp-code-patch-darwin-x86_64 Build done.
buildbot/vexp-code-patch-darwin-arm64 Build done.
buildbot/vexp-code-patch-windows-amd64 Build done.
buildbot/vexp-code-patch-coordinator Build done.
2024-02-20 12:42:44 -08:00
531d178e80 Fix Alembic crash when reading cyclic bezier curves 2024-02-20 12:41:54 -08:00
62c34b0d09 Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-20 11:05:02 -08:00
98134393c1 Fix previous merge issues 2024-02-07 13:40:44 -08:00
d27db76bbe Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-07 12:38:50 -08:00
274057cf1f Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-02-06 21:24:20 -08:00
4afb0af64a Merge remote-tracking branch 'origin/main' into abc_usd_geometry_sets_review 2024-01-19 11:07:50 -08:00
cb9829f9bf Fix USD Shape animations 2024-01-10 13:30:48 -08:00
300a3a6198 ATTR_DOMAIN_POINT to bke::AttrDomain::Point 2024-01-10 00:40:03 -08:00
ddc6fd30bd Fix conflicts 2024-01-09 21:32:02 -08:00
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