It seems like the Copy SOP, when in Stamp mode, gets recooked on every frame even when nothing has changed, and as a result my fps goes from 60 down to 45 with just this 7 node snippet!
letter_positions.tox (1.3 KB)
TD 2025.30060 MacBook Pro M1 Max
Thanks for the report. While we’re fixing bugs and crashes in SOPs, any such SOP optimizations are very low priority, so I’m not sure how soon this will be addressed. You might want to try a POPs workflow instead, this is where we’re focusing our efforts.
Is there a stamping equivalent in POPs? Houdini has since created a ForEach SOP setup to facilitate the concept of multiple batches of things in a SOP.
Hey Antoine,
There is nothing quite like stamping at the moment. This feature set is on few development lists obviously but the recusive nature of how things were setup with param() expressions in SOPs was tricky to implement in compute shaders so the feature didn’t get any traction yet. Made the request more prominent in our database so there will at least be some more discussions on it soon. I wouldn’t expect it for version 1.0 release though. If there are some intermediate techniques that I find out that can approximate stamping behavior Ill post back here…
J
Yeah, in the grand scheme of things, stamping is pretty evil! But a necessary one, so I would put my submission into the realm of a bug (esp. given it seems like it might be regression of sorts).
At one point I sent a pretty big email into SESI about a concept I called ‘chunks’: basically it segmented the geo into a bunch of chunks, and effectively each SOP would have a for-loop to run through the chunks. This mitigated the need for stamping: instead of stamping with 10 copies, you make 10 chunks at the beginning of the chain where you need it. You’d need some tools for segmenting and merging the segments, but I think that would be a really streamlined way to go without having to cook the chain X times and would make tracking dirty nodes much easier.
Ya I was thinking something less sophisticated like a cache where each frame in the cache could be copied to each point. The cache would be filled with some for loop type behavior.
You might also consider Replicator COMP in this instance though you’ll produce some extra nodes.
Hey all, There is a GLSL Copy POP example where each copy can get a separate arbitrary deformation (that you code in GLSL), and works in cases where each copy has the same number of points and same topology, located at:
Examples/GLSL/GLSLCopyPOP/GLSL Copy POP TemplateBends.21.toe
Other than that, getting stamping with the merging of N iterations where each cycle has different and unknown numbers of points/primitives - very difficult or very slow on the GPU as it needs to know what to allocate before you start.