Add support for USD Points primitive (#3210)#3231
Conversation
Import UsdGeomPoints as point-cloud polydata with vertex colors and skinning, and add module and application tests using skeleton_skin_basic.usda.
|
\ci fast |
Use GetDisplayColorPrimvar with float RGB vertex colors, enable direct scalar coloring on the mapper, register godot-usd test data license, and fix the module test include and float color checks for CI.
76d6269 to
f006fbd
Compare
Add usd_points_rgb.usda with well-separated RGB points so the render baseline is not occluded by mesh geometry from skeleton_skin_basic.usda.
Commit the CI-generated TestUSDPointsPrimitive baseline and verify per-vertex displayColor values in the module test.
Use double tuples when reading vtkDataArray values for VTK compatibility.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3231 +/- ##
=======================================
Coverage 97.07% 97.07%
=======================================
Files 213 212 -1
Lines 17652 17619 -33
=======================================
- Hits 17135 17103 -32
+ Misses 517 516 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Match the assimp plugin so vtkOpenGLShaderProperty is registered when TestF3DUSDImporterPoints updates skinned USD content in static builds.
Original F3D test data is covered by the default BSD-3-Clause notice.
|
@Meakk Could you help re-run the failed CI job for me? It seems I don't have the permission to do that. |
|
|
\ci full |
Display colors use vtkFloatArray now; the header is no longer referenced.
|
@mwestphal do you want to take a look too? |
|
\ci full |
Read displayOpacity alongside displayColor and store RGBA float scalars when opacity is authored, enabling translucent point rendering.
Use a single usd_points_rgb fixture with displayOpacity, keep DirectScalars Points-only, restore inline mesh skinning, and drop the OpenGL module link. Remove skeleton_skin_basic and the render baseline pending CI regeneration.
|
Now points without opacity is not covered. |
Split usd_points_rgb.usda into two Points prims so opacity-only and color-only import paths are both exercised in TestF3DUSDImporterPoints.
|
@Meakk Good idea, split into |
Refresh the render baseline after usd_points_rgb.usda was split into RGBAWithOpacity and RGBOnly so TestUSDPointsPrimitive matches CI output.
Meakk
left a comment
There was a problem hiding this comment.
LGTM!
@mwestphal do you want to take a look?
41f6fc9 to
b82decb
Compare
Describe your changes
Add support for the
USDPoints primitive (UsdGeomPoints) invtkF3DUSDImporter.Import
UsdGeomPoints→ poly-vertex polydatadisplayColor/displayOpacity→ float direct scalarsTests:
usd_points_rgb.usda(author-written,BSD-3-Clause default)No
OpenGL2, no mesh refactor, single fixtureIssue ticket number and link if any
Fixes #3210
Checklist for finalizing the PR
.github/workflows/versions.json, I have updateddocker_timestampAI Disclosure
Cursor was used as a test assistant (Cursor / Composer) to help debug. I reviewed, validated, and adjusted the changes before submitting.
Continuous integration
Please write a comment to run CI, eg:
\ci fast.See here for more info.