can this be run in text editor or only as an addon?
This works from Text Editor and from addon system.
In the last line of the code, you will see main() called, which means its entry point is main() function. So if you want to run it by your own, you can get the idea to how to run the script by reading the code in main() function.
Also you can set your own parameters manually in #41 to #44 in the code where you will find the code like ui[“DistForSearch”] = 1.0.
As long as the addon tells where its GUI will be seen, it does not matter (IMHO).
If someone wants it at an other place, in most of the time an easy change in the source, isn’t it?
==>Some wikiplace, where a GENERAL instruction is described which places one could use and how a class could be adjusted …?!
Oh, I forgot to mention that it takes a lot of time, maybe more than you expect. If you want to skin 1M vertices, then you have to wait 10mins or more.
there was some faces that were not done may be because of some bugs still presents
I’m sorry. Often several errors occur while running the script, and it stops skinning process around the vertices where errors have occurred. Those vertices are selected, so after skinning, you can find out where the errors occurred in EditMode.
Thank you for trying to make it better. It looks much better. However, because of the bugs that the script has, there are some holes on the surface where the script didn’t make faces. I’m sure it’s definitely because of the bugs.
When a point cloud is noisy, the bugs increase the number of errors occurring, and it causes those holes.
may be try to make a copy of the Verts list to another python vars unlinked!
then do all calculations
it should be faster then using internal API commands !
Oh, I didn’t know that using internal API commands makes it slow. How slow is it to access via Blender Python API? Is there any information on performance or benchmark?
well it’s been done on some other scripts
usually if you use the internal values form Verts edge faces it’s running slow cause it has to go though the API interface to get the data form internal blender
now if possible you can copy your data to python vars then do the calculations without using API commands then it should run faster
mind you i did not analyse your algo to do it so not certain if possible in this specific case!
but it gives an idea how to improve speed in some cases which can use this advantages of external python vars!
@Ricky, Blebber and Hans
Thanks for all your responses. School has had me tied up the past week so I’ve been off line quite a bit
@Hans PG
Is this equivalent to a Ball Pivoting type meshing? The “Searching within a sphere” sounds a lot like “roll a ball around each point.” I read your algorithm and notes on parameters. Now I understand how you can really get a LOT of calculations when you increase the dist to skin variable.
@Ricky
That cloud is a lot of vertices I think for that particular mesh, a prudent vertex based normal calculation with some “intelligent” decimation would go a long way to making the actual meshing step much more efficient.
@Bleber
Wanna post that .blend so I can compare with results I get from Meshlab using a Poisson filter
Thank you for reading my homepage.
Yeah, we can use Meshlab instead. I haven’t tried it yet, so I don’t know the details on how it works. It seems to be efficient. I’m curious about how long Meshlab takes time to mesh.
Is this equivalent to a Ball Pivoting type meshing? The “Searching within a sphere” sounds a lot like “roll a ball around each point.”
As result, it would be almost the same as what this script does. But I don’t have enough knowledge about Ball Pivoting type meshing. You know well about meshing. Do you have any webpages that gives a good explanation on Ball Pivoting type meshing? And also any suggesions to this script are welcomed.
I’m actually not terribly proficient with the actual algorithms beyond a basic understanding. Usually if you click the “help” button in a lot of the meshlab functions, it will actually give you a citation or literature reference. That’s how I gained most of my understanding was by reading the abstract or browsing quickly through the papers
Here is the Ball Pivoting paper. Check out section 3 for a good description.
Re: Speed
Meshlab is going to have us beat on speed since it uses C++ I’ll post some comparison results when I get a chance
Thanks a lot for your information. I took a brief look at the paper. It says that Ball Pivoting algorithm takes around 10mins for 2M vertices to be meshed when using a PC with 450MHz CPU (it was written in 1999. now we can use 5 to 10 times faster PC at least, I guess). So I thought it means skinning is a difficult problem and it takes a lot of time to process.
Usually if you click the “help” button in a lot of the meshlab functions, it will actually give you a citation or literature reference.
When I saw Meshlab the last time some years ago, I could only find its source code. I didn’t know that now they have Meshlab application (.exe). I should definitely try to use it. Thanks for letting me know about that
@Hans
Skinning can be difficult. There is definitely no perfect method and it is 1/2 art 1/2 science.
I think what I would like to see is a modifier in the actual Blender source with simple mesh processing tools. Perhaps a ball pivot, a poisson reconstruction and maybe an iterative closest point mesh registration where you can even define vertex groups to limit which parts are used to register meshes together. Point cloud data gets more available every day and some basic tools in Blender would be awesome especially if they were compiled in source…ahh dreams.
well, now we are bordering on “thread hijacking” but here is a nice paper on poisson reconstruction. Its at Johns Hopkins. The cool thing is that there is a MSVC solution with source.