I have a model of a track light, like so:
I'd like to be able to aim this track light at various things around my environment, and - because I'm trying to use this as a way to learn more about the world of USD - I'm trying to accomplish this in LOPs.
I understand that by setting the "name" attribute on my lamp geometry, I can control how it ends up being represented in USD. So, I can give a sop prim a name like "light_1/light_suspension/light_canister_lower". This yields a structure in USD like this:
I end up with USD prims that are 1) broken apart nicely in preparation for various material assignments, and 2) organized hierarchically in such a way that benefits the eventual transforms I will need to apply to the various USD prims. For example, I can rotate the entire light horizontally by doing a Y-rotation on the "light_suspension" group, and adjust the up-down rotation of the canister bit by rotating the "light_canister" group.
At least...I *think* this is how I should be thinking about this.
Anyway, I would like to provide pivot information for the various components of this light. I have this pivot information in SOPs, but it's not quite clear to me what I should do with it to effectively bring it into LOPs in a tidy way. I *think* I want to have a USD attribute like "light_suspension.xformOp:translate:light_pivot", which would exist on the "light_suspension" transform. But, this transform doesn't actually exist as geometry in SOPs, it's just sort of an interim thing that 'turns into' a transform at the point where the SOPs are converted to USD.
I can stamp this pivot information as sop prim data on each lamp, in which case it comes through like "primvars:light_pivot" on each prim in USD, but that doesn't seem like where I want this information.
I'm sure my inexperience is causing me to be approaching this incorrectly; I'd love for any advice about how to do this better!


