I’ve noticed something in my workflow and I’m wondering if there’s a better approach.
I’m converting a TOP to a POP, deleting unwanted points, and then converting back to a TOP. After the conversion back to TOP, the points seem to be rearranged and empty areas appear in the resulting texture.
Currently, I’m using a Crop TOP to remove unused areas and reduce the point count. This works reasonably well for my use case because the volume I’m recording remains roughly the same size and doesn’t move very much. For volumetric recordings, the performance gain is significant—I can often remove more then 50% of the unused points.
I have two questions:
1. Fastest way to record point cloud sequences?
Is the fastest method for recording point cloud sequences still:
Pack point position data into RGBA textures
Record using Movie File Out TOP
Unpack the data during playback
Or is there now a faster/more efficient way to export and play back point cloud sequences using POPs?
2. Completely removing deleted points in POPs
When I delete points using a Delete POP, the visual result looks correct, but if I inspect the output (for example with a Null POP), it still reports the original number of points from my depth camera (about 900,000 points).
Is there a way to completely remove those deleted points so that the actual point count is reduced, rather than just marking them as inactive? Ideally I’d like the POP stream itself to contain fewer points.
Any insights or recommended workflows would be appreciated.
Regarding the delete POP, the actual number of points after the operation is only known on the GPU.
See POP Topology - Derivative for more explanations.
You can enable “Copy Topology Info Back to CPU” on the delete POP, though it’s a somewhat slow operation.
Alternatively you can use the Topology POP to limit the number of points allocated, see modified toe.
Otherwise if you use the File Out POP the “Copy Topology Info Back to CPU” operation will be done for you.
I’m not sure how it compares in terms of speed to movie file out TOP but it should be similar for exr, I’ll ask internally.
Thank you for your reply and the explanation. The topology behavior makes sense now. Always nice to learn something new.
For what I’m trying to achieve—recording and playing back point cloud sequences—I’m currently getting much better performance by exporting the TOP using Pack and Movie File Out TOP compared to exporting EXR sequences (either from TOPs or POPs).
I’m quite happy with the results so far, especially after removing the unused points, which results in significantly smaller textures. I’m just curious or hoping there’s a way to write out points files even faster.
Both the “Copy Topology Info Back to CPU” option on the Delete POP and the Max Points setting in the Topology POP are very useful in the POP workflow. Thanks a lot for providing the example file and pointing me in the right direction.
We’re using the animation codec in a MOV container (with a 32-to-8 RGBA pack/unpack workflow).
I’m working with four Orbbec cameras in a volumetric setup. If I discard the points I don’t need, I can record and play back in real time quite comfortably on an RTX 3090.
However, when I switch to an EXR-based workflow, TouchDesigner playback immediately drops to around -30 FPS, even with just a single Orbbec camera. Writing the EXR files also can’t keep up with real-time recording.