Jump to content
anbt

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.

Cheers

 

image.png.a2f597b4170e3222d0e9134f7e38c4ed.png

Edited by anbt
  • Like 1

Share this post


Link to post
Share on other sites

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.

rebuilt.png

Edited by AntoineSfx

Share this post


Link to post
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?

Share this post


Link to post
Share on other sites

I want to do what AntoineSfx tried to find out. Just recreate a geometry from points only.

Share this post


Link to post
Share on other sites

Thank you all for the answers. I thought it was a trivial issue and a simple wrangle would solve the pb but I was wrong hehe. I will experiment with what you all replied. 

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×