I note that UsdGeomPoints has a “Ids” attribute like the UsdGeomPointInstancer, but I don’t see any API affordance for getting back a particular point’s Id in TestIntersection() like I can for a PointInstancer’s points.
Is this something that would be straightforward to implement or are their hidden performance gotchas that make it harder than what’s happening for point instances?
Right now usdview only supports picking & highlighting at the prim/instance level, so the APIs don’t have any affordances for “element” picking (i.e. faces, edges, points). All of the hydra support is there, though; just the API is discarding data. Adding support for element picking to TestIntersection is pretty straightforward; adding element picking semantics to usdview at a UI level is more complex, of course.
Some users of UsdImagingGLEngine (such as the maya integration) have subclassed that API and extended TestIntersection to return the missing information. We also have plans to extend TestIntersection to be more general, as well; we don’t have a firm date yet but if this is a blocker for you let us know.
Hey @tomc - just wanted to check in on this capability getting added to TestIntersection() - we talked about the possibility of at least landing the ability to get a GeomSubset back if it contained the point, not sure if that has landed…
Or if there’s anything I can do to help it along.
Leaning into UsdGeomSubsets a lot more these days, and it’s getting harder and harder to have picking make sense the user when I can’t select what they’re looking at for, say, binding a new material to just that UsdGeomSubset.
Hey! I have a change I’m shepherding right now that adds face/edge/point picking to UsdImagingGLEngine; it should make it to github soon.
After that you’d need a few more things:
Face/edge/point selection highlighting support.
(Optionally) Extending the selection model to geom subsets, so that TestIntersection returns a subset, and highlighting a subset works as expected. Though note you could have this logic in the app as well.