Thoughts on manipulating geometry in LOPs?

   895   4   1
User Avatar
Member
62 posts
Joined: Sept. 2014
Offline
I'm working on building a scientist-friendly workflow in LOPs, and there are a few places where I need to do high-level geometry manipulation. I like the idea of encapsulating this in custom LOP assets instead of forcing my end-users to dive into SOPs, but it seems like this is relatively uncharted territory. I don't have any specific issues at the moment, but I'm interested in hearing whether others have explored this. Any best practices you'd recommend, prim naming conventions, whether to hide, disable, replace, or delete prims that have been modified, etc?

Cheers,
Tim
User Avatar
Member
273 posts
Joined: Nov. 2013
Offline
Probably the devils in the details and it depends on what you mean by high-level geometry manipulation. Sops is a very powerful geometry manipulation context so my guess would be it'd be tough for lops to compete in most cases. But if you could give an example or two you might get more input.
Edited by antc - Dec. 3, 2023 18:59:35
User Avatar
Member
238 posts
Joined: Nov. 2013
Offline
apologies for my possible ignorance, but as soon as you want to do any kind of geo manipulation you have to dive into sops right?
Sop modify lop is just a subnet with a sop network inside.
Just asking as I am getting familiar with lops myself right now and trying to set up everything in lops, with the occasionally diving into sops for exactly that, geo manipulation, generation.
http://www.sekowfx.com [www.sekowfx.com]
User Avatar
Member
62 posts
Joined: Sept. 2014
Offline
@sekow - yes, all geometry modification involves a SOP network under the hood, but that leaves many questions unanswered. To take one example: practically all SOPs have a group parameter to target the operation to a geometry subset. With a LOP, you'd likely need that, plus a prim path, to target the operation within the scene. Are there naming conventions that make this more-or-less difficult for users? Should the default behavior be to overwrite the original geometry, or be stored elsewhere using a different path? How should layers be involved? What is the value of nodes like Mesh and Points that create empty prims, when there aren't any LOPs to populate them that I can see? I imagine that over time the community and/or SideFX will come up with best practices for how geometry-creating/modifying LOPs should work, and was asking to see if there's any kind of consensus. Of course, it could be that there just isn't any
User Avatar
Member
273 posts
Joined: Nov. 2013
Offline
tshead
To take one example: practically all SOPs have a group parameter to target the operation to a geometry subset. With a LOP, you'd likely need that, plus a prim path, to target the operation within the scene. Are there naming conventions that make this more-or-less difficult for users?
Afaik there's no naming conventions as such, beyond the existing path mapping conventions between lops and sops. But on meshes at least, lops can represent sop primitive groups as UsdGeom subsets [openusd.org]. They roundtrip back and forth pretty well. Sop groups for other kinds of primitives like curves and points might not be supported quite as nicely in usd.

tshead
Should the default behavior be to overwrite the original geometry, or be stored elsewhere using a different path
That's probably case by case, depending on whether the there's any value in keeping the unmodified geometry. Typically the answer is no, and so overwriting the original geometry (non-destructively of course) might be a good default.

tshead
How should layers be involved?
sopmodify/sopcreate always add a new layer.


tshead
What is the value of nodes like Mesh and Points that create empty prims, when there aren't any LOPs to populate them that I can see?
So that you can create (or edit) the bulk of the prim definition in usd and then be more targeted in sops (populating only points and topology for example). It's more work to try and author every single usd attribute in sops.
Edited by antc - Dec. 5, 2023 13:47:08
  • Quick Links