Hi,
I've got some laser scan data that I want to turn into a mesh, but it's not just simple terrain, it's houses with roof overhangs, church towers and other stuff, where the Triangulate2D node with "keep point positions" doesn't give me nice results around the roof corners, since it basically tries to project a plane on top of the point cloud and ends up connecting points on the roof overhang with ground points, creating a mess where there are points on the walls etc.
There is an algorithm called Poisson surface reconstruction, that seems to do a decent job of meshing 3D point clouds, but I can't find anything similar in Houdini.
How would you guys go about meshing a 3D point cloud (not a 2.5D one) inside Houdini?
Cheers,
Ivan
Meshing Point clouds
2213 6 1- ivanmalek
- Member
- 143 posts
- Joined: 9月 2017
- Offline
- paulmarkd
- スタッフ
- 71 posts
- Joined: 1月 2022
- Offline
The Point Cloud Iso SOP constructs a mesh from a point cloud with normal vectors. More details are in this tutorial: https://www.sidefx.com/tutorials/surfacing-lidar/ [www.sidefx.com]
This is an area where we'd like to improve our tools. Feel free to leave some feedback here.
EDIT:
The newer Point Cloud Surface SOP is recommended for meshing scanned point clouds.
This is an area where we'd like to improve our tools. Feel free to leave some feedback here.
EDIT:
The newer Point Cloud Surface SOP is recommended for meshing scanned point clouds.
Edited by paulmarkd - 2024年9月13日 15:52:47
- johnmather
- スタッフ
- 528 posts
- Joined: 8月 2019
- Offline
With H20, you can use the new Point Cloud Normal and Point Cloud Surface nodes.
https://www.sidefx.com/docs/houdini/nodes/sop/pointcloudnormal.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/nodes/sop/pointcloudsurface.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/nodes/sop/pointcloudnormal.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini/nodes/sop/pointcloudsurface.html [www.sidefx.com]
- MatsWatlab
- Member
- 1 posts
- Joined: 6月 2016
- Online
I know it is an older post, but as johnmater is saying they want to improve the tools in there i have some remarks and maybe it get's some attention:
I'm working in the simulation industry and we often have to generate meshes from pointclouds that are several square kilometers. The pointclouds are not always perfect square and are, in my case, mostly following a river so i have very long but (relativly) narrow points clowds.
For these large pointclouds you often struggle with the sheer size. The pointcloud surface node has to have a very high subdivision to keep some detail. Wich results in a very high memory usage and is mostly unworkable. It also generates a border mesh around the pointcloud wich is going to big.
Another big problem is that the pointclouds we get are mostly already processed clouds: they have been converted into a very even grid point cloud. It looks like: 3D pointcloud to 2D pointcloud and added the height information again. It gives you a kind of JPEG compression: you have jagged edges.
If you mesh a pointcloud like this one, you'll get very jagged edges if a corner or difference in height is not exactly on the grid-lines. It would be nice if we could apply some kind of guid-geometry (curves, lines, ...) so that the surface-node takes them into account when connecting certain points. I'm thinking of something like you can add flow-lines from wich you can set the influence (and influence distance) it has on the pointcloud-surfacing so that it prioritizes the flowlines first when looking for the best points to connect.
or am i looking for a solution that already exists?
Thanks for reading!
I'm working in the simulation industry and we often have to generate meshes from pointclouds that are several square kilometers. The pointclouds are not always perfect square and are, in my case, mostly following a river so i have very long but (relativly) narrow points clowds.
For these large pointclouds you often struggle with the sheer size. The pointcloud surface node has to have a very high subdivision to keep some detail. Wich results in a very high memory usage and is mostly unworkable. It also generates a border mesh around the pointcloud wich is going to big.
Another big problem is that the pointclouds we get are mostly already processed clouds: they have been converted into a very even grid point cloud. It looks like: 3D pointcloud to 2D pointcloud and added the height information again. It gives you a kind of JPEG compression: you have jagged edges.
If you mesh a pointcloud like this one, you'll get very jagged edges if a corner or difference in height is not exactly on the grid-lines. It would be nice if we could apply some kind of guid-geometry (curves, lines, ...) so that the surface-node takes them into account when connecting certain points. I'm thinking of something like you can add flow-lines from wich you can set the influence (and influence distance) it has on the pointcloud-surfacing so that it prioritizes the flowlines first when looking for the best points to connect.
or am i looking for a solution that already exists?
Thanks for reading!
- paulmarkd
- スタッフ
- 71 posts
- Joined: 1月 2022
- Offline
- paulmarkd
- スタッフ
- 71 posts
- Joined: 1月 2022
- Offline
Triangulate 2D:
- Adds topology to the input points (Delaunay Triangulation).
- Linearly interpolates, bounded by the input's convex hull.
Point Cloud Surface:
- Creates new points and topology.
- Solves on the bounding cube.
- Uses smoother interpolation, with closed or open boundary conditions.
- Adaptive; uses more polygons in areas with higher point densities.
- Requires input points to have properly oriented normals.
- Adds topology to the input points (Delaunay Triangulation).
- Linearly interpolates, bounded by the input's convex hull.
Point Cloud Surface:
- Creates new points and topology.
- Solves on the bounding cube.
- Uses smoother interpolation, with closed or open boundary conditions.
- Adaptive; uses more polygons in areas with higher point densities.
- Requires input points to have properly oriented normals.
-
- Quick Links