Where to? Top > CSV Script Projects > Point Cloud Skinner Script > Information
Download | BlenderArtists | Notes
This page last modified: 2010/01/10

Point Cloud Skinner Script Information

A graph of a physics simulation and an IPO curve in Blender. [Zoom]

Why did I make the script

After I put the script in the thread, I got some comments that are asking me if it can import a point cloud data. I didn't know about point cloud and the script had no ability to do that, so I tried to consider how to import it and started to develop a new script.



Future works

+ display the state with a progress bar.
+ fix the intersection of faces that still appears in a few cases when you use a noisy point cloud.
+ decide the parameters automatically when you open the dialog and specify your mesh of point cloud according to the size of the given cloud.
+ make the parameters variable during skinning and calculate them automatically for each vertex.

Change logs

2009/01/18 v0.14, t23
+ added a new UI mode which allows you to use the script from the menu Mesh in Blender. You can set the parameters quickly in the new popup block.
+ can switch the UI mode. The popup UI will be display if the 3D window is in EditMode, and the script GUI will be display in otherwise.
2009/01/11 v0.13, t21
+ corrected the function CalcAverageNormal. The algorithm is based on Lagrange's Lambda Method minimizing of sum(ax+by+cz)^2, which is the real minimization of the distances between vertices and the center, instead of least squares using ax+by+cz=1 in v0.12 or older.
2008/11/16 v0.12, t19
+ The script name was changed and it's going to be called Point Cloud Skinner 1 Umbrella instead of Point Cloud to 3D Mesh, because another way of skinning has been created and it's called Point Cloud Skinner 2 Carapace.
+ A GUI was added to make it easy to setup, using the module Blender GUI Provider. The module code has been appended to t15 simply.
+ TimeProfiler was created to measure process time, and the code was included into t19.
+ PointsGridManager has been improved to collect vertices faster by using hash values for keys of the dictionary that contains the grid cells.
2008/02/03 v0.11, t15
+ created PointsGridManager class to manage a lot of vertices with a meshed grid. It allows you to gather vertices that are located in a distance with less time consumption.
+ changed the process of checking the internal angles. Now it can check more correctly if the triangle outside has shaper angle than # the triangle around center, and can avoid discarding the vertices.
2008/01/18 v0.10, t14
+ changed the script to use average normal and added a new parameter gb["MaxDistForAxis"] to set the distance in which it gathers vertices to decide the average normal.
+ fixed the bug that causes an error in the process of checking the internal angles. It was solved by checking the length of NeigVert2 - NeigVert1.
2008/01/17 v0.9, t13
+ The upgrade for checking the internal angles in t12 has two problems and they could make a shape triangle because of missing to reduce unnecessary vertices, and it has been fixed in t13. (One of two was solved by enabling the vertex if its neighbor vertex is in unable region in SomeEndVerts state, and the other was by enabling the vertex if it and its both neighbor vertices form a shaper triangle.)
+ It has been found that the fixes above cause another problem near the edges of the surface with making a shape triangle, and it has been also fixed.
2008/01/16 v0.8, t12
+ upgraded the functionality of checking the adjacent 2 triangles and can reorganize the triangles into good shapes.
+ modified the way of checking the internal angles using a new concept. It can avoid the intersection of faces that will come from reducing the vertices by the checking.
2008/01/06 v0.7, t10
+ upgraded the functionality of checking the internal angles and can check if the angle is too small or large.
2007/12/10 v0.6, t7
+ added the functionality to avoid making intersection of faces, but some faces still have intersection in a noisy point cloud. (To avoid the intersection, it looks at faces that have been already made, and such a face is called a face-end face in the script. First it searches for face-end edges that are just connected to the center vertex and groups the vertices by the edges. Next in each group it searches for the other face-end edges and discards the vertices that are hidden by the edges. And it makes faces out of the left vertices.)
+ haven't yet upgraded the functionality of checking the internal angles for the new version, so removed the previous codes.
+ haven't yet upgraded the functionality of checking the adjacent triangles for the new ersion, so commented out the codes now.
2007/11/29 v0.5, t6
+ created FacesManager class to manage faces. It provides you with an easy way to find the faces that include a specified vertex. The purpose is to find the already made faces to avoid making overlapping faces.
2007/11/29 v0.4, t5
+ separated the algorithm code in MakeFacesAround into some smaller methods because the code length started to be long. Also changed the way to send data to those methods and now use Data class to send it.
2007/11/22 v0.3, t4
+ can check if angles between adjacent 2 vertices are acceptable.
+ can check if adjacent 2 triangles have appropriate shapes.
+ changed the way of sending faces' information to downward
functionalities in the algorithm and now treat it in the same unified data structure everywhere.
2007/11/18 v0.2, t3
+ the algorithm has not changed but a few codes changed to make it easy to read, for example changing into gb["*"] style, compacting for loop codes.
2007/11/16 v0.1, t2
+ t1 code was separated and t2 started newly to concentrate on the development for skinning a point cloud.
+ implemented a simple algorithm to make faces around each vertex.


Blender.jp forum (in Japanese):

Copyright (C) 2006 - 2012 Hans.P.G. All Rights Reserved. Hans.P.G. | Contact
inserted by FC2 system