Hey all, wondering if there’s any plan to have this value exist in the Copy POP. Helpful for offsetting a copy by some amount in a table or pattern or whatever.
Maybe I’m missing some fundamental, better way of doing this in POPs though.
Hey all, wondering if there’s any plan to have this value exist in the Copy POP. Helpful for offsetting a copy by some amount in a table or pattern or whatever.
Maybe I’m missing some fundamental, better way of doing this in POPs though.
Hello @vpicone
There’s the concept of Dimension that might be interesting for you.
The Copy POP adds a new dimension as large as the number of copies you are making.
It’s also possible to retrieve a TemplateId or a CopyId attribute to identify the various instances. This information resides in GPU memory.
Does this copy information meet your needs?
Ah this is helpful thank you, I think something like the SOP’s me.copyIndex could still be helpful for things like easily manipulating the transforms of copies, but perhaps it’s better to guide people into the POP way of doing things.
@Guillaume.L ultimately I’m trying to translate each copy instance by a certain amount based on the instance’s index. This is pretty straight forward in SOPs, since you can just do op('offsets')[me.copyIndex, 0]
in the translate
property of the Copy SOP.
It sounds like I might need to feed into a Math Mix POP or something where I can use the dimension to add to the P value I’m trying to manipulate.
Look in Leaning About POPs in the Dimension section at Built-In Attributes for Dimension.
You would want to do something like _DimU[2] * scalingFactor in a Math Mix POP.
You can do it in one block where you choose A + B * C, where A is P, B is _DimU[2], and C is any constant #.
In Overview.toe in /Dimension has some clues.
The thing about POPs is you need to do all your per-point or per-copy expression computation on the GPU, not in parameters like in SOPs.
Ah, this cleared a lot up for me, bit of a mindset shift. Ty @greg and @Guillaume.L