The WOF Point Cloud Mesher is a multithreaded surface reconstruction and 3D meshing software: Firstly there is an executable for getting started quickly. Secondly you also can use WOF as a C++ library for Windows and Linux and the basic functionality is:
- 3D Point Cloud to Triangle Mesh
- Triangle Mesh to Quality Point Cloud
- Triangle Mesh to Triangle Mesh
The C++ API is documented here. But let’s start to play with the executable:
3D Points to Triangle Mesh
The WOF mesher takes 3D points as input and it constructs a triangle mesh. To achieve this WOF needs to estimate the density of the point cloud. Alternatively the user can specify this density like in the below example commands:
stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -a 1.1
stibbons@hex:~$ wof.exe –reconstruct cloud.bin -o mesh.list -b 100
stibbons@hex:~$ wof.exe –reconstruct cloud.ply -o mesh.ply -f 3.0
stibbons@hex:~$ wof.exe –reconstruct cloud.xyz -o mesh.stl
- The first line assumes that the user has knowledge about the clouds’ density. Therefore he specifies the spacing distance manually using “-a 1.1”.
- In the second line the user tells WOF to assume a resolution of 100, i.e., there are about 100 points in the direction of the largest range of the bounding box.
- The third command line tells WOF to estimate the input density automatically: But afterwards WOF shall multiply the determined value by factor 3.0 (“-f 3.0”) to account for non-uniform density i.e., to avoid holes OR to create a less complex mesh.
- The fourth command line does not specify -a, -b or -f. In this case WOF assumes -f 2.0 which is a reasonable factor to account for a non-homogeneous input density.
Supported point file formats are .xyz which is a simple ASCII format with 3 coordinates per line, .ply in ASCII and binary form and .bin which is a raw binary format. Moreover, triangle meshes can be .ply files or ASCII-.stl (no binary .stl yet) and WOF can write .list files for the Geomview viewer.
Triangle Mesh to Quality Point Cloud
This is the opposite computation: A triangle mesh exists and you create a quality point cloud that respects significant edges of the geometry.
stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -a .2
stibbons@hex:~$ wof.exe -t Music_Art.stl -o cloud.ply -b 200
The first above command uses the spacing distance “-a 0.2” while the second one specifies the resolution “-b 200”: WOF creates 432.673 points with “-a 0.2”. In contrast, when you choose half the distance (“-a 0.1”) then 4 times more points fit onto the surface (1.74 mio) and with a quarter (“-a 0.05”) you would get 16 times more (6.97 mio) points. Consequently you must choose the spacing distance carefully to avoid huge outputs!
Use the WOF executable for getting started quickly and keep in mind that anything you can do with the executable is also possible with the C++ library.