I have a little POP based laser setup that is running well. Absolutely loving POPs for lasers!!
One strange thing I am encountering is:
I use a delete POP to “clean up” any unwanted pop geometry before it gets sent to the Pangolin chop. This works by using the colour attribute as a threshold for deletion. Any POP that has R, G and B colour value below a specific threshold gets deleted.
This function works great but only if I “copy topology info back to the CPU”. This inevitably leads to some bottlenecking down the line. FPS returns to normal after a quick refresh of the delete POP. However, If I bypass the delete POP to refresh Beyond outputs some random coloured points.
I am interested to know what the need is to copy the topology back to the CPU and if there is a better way I could be using the delete pop and maybe the topology POP to achieve the same result but limiting how much gets copied back to the CPU.
I think this has to do with the pangolin CHOP working on the CPU and POPs on the GPU. Correct me if i’m wrong here, but normally for video output the CPU makes calls to the GPU to calculate and draw things. Then the GPU does this and outputs the video signal. Since the laser CHOP works on the CPU, in your setup the CPU makes the call to the GPU to calculate your POP network, this then has to send its results back to the CPU so it can output to the laser with the pangolin CHOP. GPU readback is very slow for realtime application standards, so if you have a decent amount of points this can tank your performance.
As for a better way to do it, it kind of depends on where this geometry comes from. If you have a file you read it from, i’d suggest just deleting the points with blender or something and saving a new version of the file. If that’s impractical and what needs to be deleted is static, you can also make touch do this once and lock the operator, so it doesn’t recalculate it every time. If what gets deleted is dynamic, i’d look into a way to only create the points that are actually needed somehow, but that really depends on your network. Maybe someone else has a better suggestion in that case?
After investigating, I found there’s a bug with how the Pangolin CHOP handles deleted points on its input POP, potentially causing unexpected points to appear in the output like described in your post. This will be fixed in the next official build we release: 2025.33155+.