7111e955279afdbb91f2f539bfb2a995014319f4
Refactor and revamp import and export of `UsdGeomNurbsCurves` prim objects. Fixes #130056, among other things. Summary of changes and enhancements: - Export: - Write out `nurb_weight` attribute as the USD `pointWeights` primvar - Properly write out cyclic NURBS curves data (* see notes) - Import: - Import using the new `Curves` datablock rather than the old `Curve` - Properly read in cyclic NURBS curves data (* see notes) - Tries harder to match incoming knot vector to standard `knots_mode`, will use Custom otherwise - Support import of all custom primvars and data attached to the prim (for use with Geometry Nodes etc.) (* see notes) Tests were added which check a variety of point count, order, knot_mode, and cyclic combinations (generated through Geometry Nodes). A small number of hand-crafted curves were used to test the Custom knots_mode support on import. Additionally, the tests cover the case when there are multiple curves defined for a single object. Notes: - Cyclic NURBS support is reliant on the current, under-spec'd, USD documentation. Changes may be required in the future if/when the USD spec is clarified: https://github.com/PixarAnimationStudios/OpenUSD/issues/3740 - Some Cyclic x knots_mode combinations are not correct and would require more research to determine how to properly address. - Custom attributes are not imported for Cyclic NURBS curves yet. Those will require additional work to function correctly and are also reliant on seeing how the USD spec changes. Pull Request: https://projects.blender.org/blender/blender/pulls/143970
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
