Decoupling Scatter Density with Input Geo

   985   5   2
User Avatar
Member
13 posts
Joined: 9月 2023
Offline
Hi,

I need to scatter onto a low-resolution input mesh, with a high-resolution point cloud representing the density.
Ideally I don't want to remesh the low-resolution input mesh at all. Is there a way to scatter points based on the point cloud's density attribute?

OR

alternatively, can we scatter points on a point cloud? Then I can always snap the scattered points to the closest surface on the input mesh. But scatter works only on surfaces...

Would appreciate any advice/discussions!

(This is a simplification of the problem. I promise there is real application for this!)
Edited by nd_sliu - 2023年10月25日 19:26:08

Attachments:
Sop Network Demo.png (38.7 KB)
Mesh Scene View.png (675.6 KB)
example.hip (167.7 KB)

User Avatar
Member
3 posts
Joined: 11月 2018
Offline
You could try rasterizing the point cloud, scatter into the volume and then ray your scattered points back onto the low res grid.

Attachments:
example_02.hip (181.8 KB)

User Avatar
Member
13 posts
Joined: 9月 2023
Offline
Thanks! I checked out your solution and it's interesting. Though one great property of the geometry-based scatter is that the scattered density is independent of the geometry resolution. (see variant-res-scatter-output.png)Using the raster method, you can see that the scatter density is actually affected by the grid resolution.

I was hoping to find a solution that gets similar results as the scatter node.

The reason I don't want to modify GEOMETRY is that those kinds of operations are slow. I tried Remesh, Polyslice, and Voronoi Fracture to make it match the resolution of the high_res_grid (which ideally should be 1024x1024). But they all turn out to be super slow. Maybe there can be a faster way to "gridify"?
Edited by nd_sliu - 2023年10月27日 15:44:21

Attachments:
variant-res-scatter-output.png (763.6 KB)
updated-network.png (51.1 KB)
demo-variant-res.hip (168.3 KB)

User Avatar
Member
900 posts
Joined: 2月 2016
Offline
I assume that the point cloud should match the size of the base geometry?

In which case, why don't you scatter from the Point Cloud itself?

Similarly to what Kushdas proposed, you can use Point Generate Sop at your advantage, to generate points from the PC, based on a density attribute.

Then you have to jitter them around a bit because the new points are generated at PC positions.

And finally relax them.
Edited by Andr - 2023年10月28日 06:58:14

Attachments:
scatter_from_point_cloud.hiplc (190.1 KB)

User Avatar
Member
4515 posts
Joined: 2月 2012
Offline
Hi,

You can also try an adaptive approach:



Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com]

youtube.com/@pragmaticvfx | patreon.com/animatrix | animatrix2k7.gumroad.com
User Avatar
Member
13 posts
Joined: 9月 2023
Offline
Thanks all. I appreciate the different approaches. Tho I hope there was a world where scatter node can use other inputs as density other than the geo itself. Well, for now I'll try a mix of these methods!
  • Quick Links