Point Clouds, please explain

   6154   7   3
User Avatar
Member
29 posts
Joined: July 2005
Offline
Looking around for a technical explanation of how point clouds are accessed and used. My understanding from the users group at Sig was this would be a new format that sorts points in a kd tree (or something like that) for fast nearest neighbor fetching. In practice I see that they are simply .bgeo files with points in them.
I realize that being able to access them from vex operators is novel and very cool, just curious if there is a fast nearest neighbor access to them. Also I notice in the scatter sop that you can add a ptarea attribute which stuffs the dist to the nearest Nth point (defaults to 4th).. is this the pre-baking part that allows for fast access? if so how does this work in practice? Just want to understand the mechanics a bit more to understand what's possible with them.

thnx

daniel
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
2199 posts
Joined: July 2005
Online
I can't answer your question in depth but as I understand it using the .tbf format has performance benefits over just using .bgeo's, I think this new format is designed specifically to help speed up exactly what you talking about.
The trick is finding just the right hammer for every screw
User Avatar
Member
29 posts
Joined: July 2005
Offline
Thanks Simon, that's very good to know. I combed the docs for information about a new format and found nothing.. so I suspected that I was incorrect in my assumptions. Where did you find information about the .tbf format? Is this just another case of incomplete docs? Seems like a big oversite (unless this format isn't actually rolled out yet)

thnx, I'll give it a try

d
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
29 posts
Joined: July 2005
Offline
A bit more info. I tried saving out a .tbf file, houdini didn't complain but from what I can tell it's actually a .bgeo file and not a new format. Seems like whatever arbitrary extension I add will simply write out a .bgeo with a different extension.

We have 7.0.185 installed here at work, not the release ver… could it be that this format has just been added?

I searched though these forums for “tbf” and only found a hit to this thread.
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
12461 posts
Joined: July 2005
Offline
It (TBF) was only ever mentioned at the Houdini users group at SIGGRAPH, as far as I know. Stands for Tiled Block Format and I assume this means that its constructed in a manner easy to slurp into a KDTree structure. (Apparently the plan is to eventually convert the i3d format to TBF internally too.)

This is kind of how I've gleaned its operation from chats with Mark and Mario..

The pcopen() function will open a pointcloud and initialize the KD Tree. Now it's easy to query any point and get a list of nearest neighbours in ascending distance order.

I've noticed the UT_KDTree structure in the HDK too.. haven't investigated it yet

I wonder if SESI have looked at RBF's - Thin Plate Spline interpolation and such?
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
User Avatar
Member
29 posts
Joined: July 2005
Offline
Thanks for the extra info Jason. Steven Ong pointed me toward

i3dconvert -c in.bgeo out.tbf

This did make a new tbf file. I tried pointing my shader to that instead of the bgeo and found no difference in speed. I had about 50k points in my cloud and figured that maybe if I pump up the count I might see a diff.. I pumped up to 200k.. things slowed way way down but didn't really see any differences between bgeo and tbf.. I didn't do much testing, so I'll have to do more to see what the gains are if any. Still also curious about the ptarea attribute and how this is involved in the picture

Just trying to figure out what the advantage is of one format over the other. I'm a little surpised how much slower things get when the point cloud is bumped way up.. I was under the impression that a kd-tree like structure would be able to quickly extract nearest neighbor points even from very large datasets. The advantage may be memory, not speed where only the portion of the model that's needed is loaded into memory rather then the whole structure? like a block tiled texture (.tx or .rat)

Hopfully sesi will enlighten us.. or I'll stumble around in the dark a little longer

thnx

d
Daniel Kramer
Sony Pictures Imageworks
User Avatar
Member
7025 posts
Joined: July 2005
Offline
Hey Dan,
Yes, the advantage is memory. A Bgeo is loaded whole into memory by Mantra (or Houdini if you're using it internally) whereas the TBF is just like RAT in that only what's needed is loaded…
With a large number of points you should see a lot less memory used. I would suspect the TBF to be slightly slower than a straight Bgeo on smaller sets that can easily fit in RAM however I don't know for sure, Mark E is the authority of course )

Cheers,

Peter B
User Avatar
Member
12461 posts
Joined: July 2005
Offline
pbowmar
Yes, the advantage is memory.

Duh, of course - thats what the “Tiled” means - thanks Peter. :wink:
Jason Iversen, Technology Supervisor & FX Pipeline/R+D Lead @ Weta FX
also, http://www.odforce.net [www.odforce.net]
  • Quick Links