Jump to content

How to convert points scattered on a surface back to that surface


Recommended Posts

I have selected the first points of some lines scattered around a tube like shape.
I get what is on the image.

I'd like to convert this into a polygon.

You will tell me to just get the shape I used to scatter the line around, but to make it short, this is animated and the original tube shape doesn't move the same as the one you see in the picture (this comes out of a vellum solver)

Hope I am clear.

I could for example use a VDB from particles, but is there a node to just link all the points into a surface. A bit like a skin sop.




Edited by anbt
  • Like 1
Link to comment
Share on other sites

  • 5 months later...

Yes it's possible, but you have to first give the algorithm some idea of the "tube"

One solution would be: connect all the points (connectadjacentpieces), fuse to some extent, then build the skeleton of curve from those points.

After that, you can sweep  the curve with a rounded profile to rebuild the original tube (clean UV are created on the tube), project the points on that tube or just transfer the UV;

Then, you can attributeSwap P and UV, and Delaunay triangulate in UV space, the attributeSwap back in 3d space. This will rebuild some faces, but introduce a few extraneous faces because of the seam that is not taken care in UV space. Here is an example of a moderately successful attempt at this. Doing this correctly is a bit tricky as you have to unwrap around the cross section and maybe duplicate / translate the points so that it also triangulates along the seam. It's a bit more complex than atributeswap P/uv

You can also look at PointCloudIso SOP, but it requires normal on the points, and computing normals on the point cloud is almost as hard as rebuilding the surface.


Edited by AntoineSfx
Link to comment
Share on other sites

Not exactly sure what you're after, but there might be a simpler way. Can you explain what you are trying to do overall?

Is this something that might be better accomplished with something like a point deform? Could you use the point cloud or whatever mesh you are simulating as your point lattice and the original geo as your deform mesh? If it's the movement you're trying to keep, that might be simpler.

And why are you feeding just points into the vellum solver? Maybe there's a way to fix your original mesh to give you want you want?

Link to comment
Share on other sites

If you have UV on the original prim you could maybe use that UV to get the point to 2d space, it's easier to rebuild a surface there , then with XYZ and PrimUV get back to the original 3dspace...

You could use minimal graph algorithm to connect random points instead of connect adjacent points.


Also i would not call this "simple vex " but have a look at the following example


Polygonal Voronoi.hipnc

Link to comment
Share on other sites

  • 4 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...