| McNeel Wiki | ||||||||||||||||||||||
| edit · print · help · all topics | ||||||||||||||||||||||
Main Pages
Languages
| Contents
Download the latest build of the PointSetReconstruction plugin for Rhino4.
The download includes the plugin, a toolbar which maps to all commands and an example 3dv file for the _Import3DVoronoiSolution"" command.
What is PointSet Reconstruction?PSR is the process of creating 'higher level' geometry from ordinary points. There are many algorithms which can be grouped under this header and this plugin implements some of them. The most famous examples are Delaunay meshes and Voronoi diagrams:
The first image resembles a delaunay triangulation through a set of unorganized points. The second image represents a Voronoi subdivision of 2D space based on another pointcloud.
CommandsThere are several available commands in this plugin, hopefully an ever growing list. Most of them share a common interface:
1. Select input geometry 2. Change options 3. Insert solution
The available commands are:
▪ Does not expose any options
DelaunayDelaunay triangulation is a 2.5Dimensional process of fitting triangles through unorganized points so that there are no gaps left in a mesh. It is well suited for recreating surfaces that are implied by a collection of points. The output is always a mesh (not a nurbs surface) and it cannot deal with z-based overlap of points. The mesh can be coloured using several different shader algorithms (see below). These colours will persist after the mesh is inserted.
If the points are organised (I.e. if they are on a grid or on a circle) the solution might fail, in which case you have to increase the sampling noise. Another caveat are overlapping points. If the surface which is implied by a pointset distribution exists in more than one place on any given vertical ray the delaunay algorithm will produce garbage:
the above imags shows the default triangulation of a nearly closed sphere of points. Since delaunay trianglation is a 2D process it will connect the points at the bottom of the sphere with the points at the top of the sphere. For these kinds of poorly aligned pointsets it is sometimes possible to use a projection guide. A guide will resample the points using more advanced projection algorithms such as aligned planes, spheres, nurbs surfaces oy hyperbolic singularities. If we use a hyperbolic guide on this pointset the surface can be resolved:
Guides can be selected from the commandline options when the command is running. Some guides depend on existing geometry other are purely virtual.
VoronoiVoronoi subdivision is the partitioning of space into discrete cells where every cell contains all possible coordinates that are closer to the local point than any other point in the set. It usually results in a very natural division of space similar to stacked soapbubbles. Voronoi diagrams too suffer from organised input so they might need noise to overcome faulty solutions.
Voronoi diagrams support guides and the solution will be projected back onto the guide shape:
There are shaders available for voronoi, but the colours do not persist. The output is a group of closed polylines each one indicating the outline of a voronoi cell. The available shaders are:
3DVoronoiThree-dimensional voronoi partitioning is similar to 2D-voronoi diagrams. This command is an early release and thus extra caution is advised. Save your model before using this command. Due to the large memory footprint of this command, several memory conserving options have been added:
When you choose to save the solution to a file, the command will create a *.3dv file in a specified location. This file will be filled with the data while the command is still running. If the command is aborted, or -heaven forbid- crashes, the partial solution can still be inserted. The _Import3DVoronoiSolution command can be used to load *.3dv files. It also exposes several options, all of which I hope are straightforward. Note that inserting many Polysurfaces is potentially a very memory intensive operation and your system simply might not be up to the task. To conserve as many bytes as possible the undo-buffer will be disabled while importing a 3D voronoi solution.
PixelGridPixelGrids are tables consisting of rows and columns, the cells of which are assigned a value depending on how many points they contain. Cells with no points are omitted which means there is potentially a jagged border:
PixelGrids can be used to reduce a complex point collection in a linear fashion.
OcTreeOcTree subdivision is the partitioning of space into discrete blocks where every box contains a number of points from the original pointcloud and all boxes together contain all points. Boxes are subdivided if they contain more than N points, or if they exceed a certain volume value or some other threshold:
There are several options available to control the method of subdivision:
Depending on which threshold values are active there are two additional options:
OcTrees support Guides and the resulting boxes will be projected back onto the guide shape in order to reflect the internal subdivision scheme:
QuadTreeQuadTree subdivision is the partitioning of space into discrete rectangles where every rectangle contains a number of points from the original pointcloud and all boxes together contain all points. Rectangles are subdivided if they contain more than N points, or if they exceed a certain area value or some other threshold:
There are several options available to control the method of subdivision:
Depending on which threshold values are active there are two additional options:
Octrees and QuadTrees use the same shader routines:
QuadTrees support Guides and the resulting rectangles will be projected back onto the guide shape in order to reflect the internal subdivision scheme:
NetworkConnectivity networks are about point neighbours. They can be used to map to the nearest neighbours in a large cloud. At this point, networks are still 2D entities. Connections between points can be limited to a certain amount per point, or to a certain length of the connection or both.
Spanning Circles and Convex HullsSpanning circles and convex hulls are a way to encapsulate points. These commands do not offer any options at present. The results can be seen in the image below:
Convex hulls are minimum area convex polygons that contain all points in a set. A minimum area spanning circle is the smallest possible circle that contains all points. The Convex hull algorithm is guaranteed to be correct, spanning circle is not. The circle is sometimes slightly larger than the optimal solution.
| |||||||||||||||||||||
| rename · changes · history · subscriptions · lost and found · references · file upload | ||||||||||||||||||||||