Page MenuHome

new skin modifier implementation
AbandonedPublic

Authored by Campbell Barton (campbellbarton) on Aug 15 2015, 5:27 PM.

Details

Summary

Hi
I have finished the skin modifier reimplementation. I hope you guys could spend sometime reviewing it for me. It will be a great opportunity for me to learn from you. I put some more explanation in the following section, hoping that it could you understand my code. If you have any question, my email is khanhhh89@gmail.com, and my Skype is khanhhh89.

Motivation

The existing skin modifier performs poorly with branching (where 3+ branches meet).
This method produces a higher quality skin which is better suited as a base mesh.

Limitations

  • Unlike the existing skin modifier, this method only supports a single scale dimension.
  • Currently the generated mesh is much higher detail then the existing skin modifier, though the option to have lower resolution versions too - needs some investigation.

Benefits

  • Better joints, especially with 3+ joints.
  • Not limited to 4 sided cylinders.

Open Topics

  • Should this replace the existing skin modifier?
  • Should this be made into an option for the existing skin modifier? (an alternate method of skinning)
  • How closely should we attempt to match the existing skin modifier?

Developer Details

  • This is being developed in the mod-bskin branch of the staging repository. This patch is regularly updated for review purposes.

Implementation

The implementation based in part off the paper "Converting skeletal
structures to quad dominant meshes" (J.A. Barentzen, M.K. Misztal,
K. Welnicka)

The SQM paper is current available here:
http://www2.compute.dtu.dk/~janba/Research_in_Graphics/SQM.html

The code also adds some features not present in the paper:

  • Add mesh evolution based on two function + Move verts at intersections between cone-sphere on ellipse intersection section between two cone-sphere + Project verts onto cone-sphere' surface based paper "Fast Distance Computation Between a Point and Cylinders, Cones, Line-Swept Spheres and Cone-Spheres"
  • No Catmull-Clark subdivision; intead, only subdivide faces in Catmull-Clark style

and project new verts onto cone-sphere's surface

  • Add some auxiliary verts on branch skin verts' convex hull, as in reality, topology at branch verts

with more than three adjacent verts is often bad. Add a auxiliary will help isolate path vert
on skin vertex's convex hull

Detail explantion:

The imput is a skeleton with skin verts and edges. There are three types of skin verts. Leaf skin verts, connection skin verts, branch skin verts corresponds to valence values of 1, 2, 3.

The implementation includes following steps:

  1. Create a graph called SQM. SQM's nodes are leaf or branch skin verts. SQM's edges own leaf or branch skin verts as their extreme verts, and connection skin verts lying between such leaf or branch skin verts. There are three typles of SQM edges: edges connecting leaf-leaf skin vert, edges connecting branch-leaf skin verts, edges connecting branch-branch verts.
  1. Build convex hull at branch SQM nodes from intersection points between segments connecting branch skin verts and its adjacent verts. Verts on convex hull called path verts. Assign such path verts to SQM's edges adjacent to this branch skin vert.
  1. Subdivide each triangles on convex hull in to six sub triangles to isolate convex hull's verts from each other. This will help each original verts on convex hull have theiw own 1-ring verts.
  1. For each of branch-branch SQM's edges, equalize valence of path verts. This ensure that such path verts can be stiched later.
  1. Stiching step 5.1 Stich leaf-leaf SQM edges: create a number of verts along the circle of first leaf skin vert, bridge such circle verts with verts along connection skin verts, and finally, bridge with verts at the other leaf skni vert. 5.2 Stich branch-branch SQM edges. Kill adjacent faces of two extreme vert and the same as above. 5.3 Stich branch-leaf SQM edges.
  1. Evolution step

This step move verts on branch nodes to their right position. Evolution strategy for verts is based on their type, which is classified by number of skin verts connected directly to them through their adjacent edges. Such numbers only could be 0, 1, 2, 3.
For 2-typed verts mean that they lying between two cone-spheres. so, we need to project them to the ellipse intersection section of two cone-sphere
For 3-typed verts mean that they lying in the region between three cone-sphere. So we find the projection of the vert to each pair of cone-sphere, and finally, take the average of all the projection points.
For 1-typed verts, we only need to project them to the corresponding cone-sphere

  1. Now we have a final rough mesh, and we need to split edges connecting leaf, branch, connection skin verts to an expected resolution.
  1. Subdivide more in case users require a higher resolution.
  1. Project all new verts on their corresponding cone-sphere.

Diff Detail

Repository
rB Blender
Branch
mod-bskin

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

If any one make a build i can make some image, test and give feedback you can see some of my skin modifier proyect here SkinMod work

@Rafael Monteiro (rafael) nolasco (kakachiex2): I am gonna fix some bugs and will upload loaf the build in a few days.
@Campbell Barton (campbellbarton):

  • LEAF_VALENCE is only used when the skeleton has no branch nodes (like a tube). In this case, we need to a polygon (has LEAF_VALENCE vertices) from one of two extreme nodes to start marching along tube. When the skeleton has branch nodes, I am using the smallest resolution now.
  • I am fixing your bug, adding skeleton operator as the old modifier and will update the patch in two days. Sorry for responding so late.

Updated from branch

  • Fix large branch node assert.
  • Clone amarture create, mark root, equalize radius from the old modifier

OH nice I'm awaiting for windows 64 build to test this upgrade and thanks Khanh Ha

@Campbell Barton (campbellbarton): I am trying to make the new modifier work with cyclic skeleton. Hope that I can finish it in 5 days.

@Campbell Barton (campbellbarton): I am trying to make the new modifier work with cyclic skeleton. Hope that I can finish it in 5 days.

@Rafael Monteiro (rafael) nolasco (kakachiex2): I am trying to use build bot to make a windows 64 build for you

Ok I've awaiting for this thanks i'm excite to test this new upgrade

Khanh Ha (khanh_ha) added a comment.EditedSep 7 2015, 6:18 PM

@Rafael Monteiro (rafael) nolasco (kakachiex2): hope this build could run on your computer. I will make a thread on blenderartists when I finish the cyclic feature. Hope to see your opinion about it ^^

This is my firs test i have some feedback i hope i have time tomorrow to do more test for know the Bskin is more stable wen extruding multiple vertex from a branch there are some bug whit mirror modifier i report it tomorrow the skin mod is more organic and i can make more complex shape i hope you can fix the old skin mod limitation keep the good work really nice.

Here is the blend file if you want to test and compare the skin mod i recommend to move some vertex, scale etc.. and see the behavior in the two modifier.

NOTE: There is an old patch from nicholas that visualize the wireframe overlay in the skin mod so you can see much better how vertex behave wen moving or scaling can you add it to your build.

@Rafael Monteiro (rafael) nolasco (kakachiex2): Two things I think it could be possible after I finish the cyclic feature:

  • Process suplymentary vertex for the bulging effect
  • un-uniform scaling at CONNECTION vertices (vertices with only two neighbours)

Thanks for your suggestion. Hope to see more result from you

Here is another blend file with a new layer so you can see the level of detail i can achive with the skin mod.

  • there is an old bug with the skin mod you can see in the Dog the mirror part have a bad generation
  • in the Nicholas implementation i can have various independent mesh with his own root [ example in the first layer ]
  • in the Bskin there is a bug wen train to connect more than one vertex to the mirror axis or to another vertex the skin dessapear.
  • if i apply the mirror modifier to an edge then the bskin one of the x axis generate skin disappear but if I move the Bskin mod to the top the mirror part appear again. I solve this by moving the bskin to the top then I activated clipping in the mirror mod. and move a vertex to the mirror plane then I move the Bskin mod. back down the mirror mod.

  • If I connect any vertex to the mirror plane or to another branch the skin disappear


Old SkinMod bug "Nicholas version"


Blend file

@Rafael Monteiro (rafael) nolasco (kakachiex2): I noted your description. I will work on it after finishing the circlic feature. It would take me about one week for it. Sorry for that. I have just two hour per day and the weekend for Blender.

thanks for you're reply i hope to see the same level of control in you're implementation and more stable Bskin Mod

I discover that i can do nice hole with your Bskin system but is not stable and is tricky i can do hole to with the other skinMod and is more tricky.

  • Build with GCC strict warnings
  • Fix large branch node assert. Clone amarture create, mark root, equalize radius from the old modifier
  • Cleanup: warnings
  • Merge branch 'master' into mod-bskin
Campbell Barton (campbellbarton) added inline comments.
source/blender/modifiers/intern/MOD_bskin.c
815–817

Modifiers should have predictable output. Calling rand like this will give different results each execution.

Best use BLI_rng_get_float_unit_v3.

@Campbell Barton
@Khanh Ha
Here is the same blend file with tree layer and different test with the two modifier hope this cant be useful, Cambell in the second layer are two dog the one with the skin mod have an old problem with mirror.

@Rafael Monteiro (rafael) nolasco (kakachiex2): is the subdivision level option necessary (subdivision and project vertices on cone-sphere skeleton) ? Or we just add the subsurf modifier below, accepting that the quad mesh could be shrinked

I prefer subdi-modifier It is less destructive and more intuitive if you get the same result as the skinMod i think will be better.

Updated from branch:

  • Cyclic graph support: this feature cut a cyclic graph into an acyclic graph, so in some cases, when the valence is unequal, triangles could happen at stiching positions.
  • Change to RNG random generator
  • Some optimizations

@Rafael Monteiro (rafael) Monteiro (rafael): the binary for you.

@Khanh Ha
Thanks for the build today is testing time...

Trying to get the same result as SkinMod "N-Bshop" with the Bskin; in flexibility and results the old one are much better and judge the results for yourself. I think this new Bskin implementation cant be included as a n alternative skinning but not as a replacement for the SkinMod.

The Bskin are more stable wen extruding multiple vertex

  • the generate skin are to straight is difficult to get smooth transition like the SkinMod "Bshop"
  • I can't do small extrusion or use extra vertex to get the shape I want this is the key to master the SkinMod.
  • is easy to make perfect hole
  • being a polar generate quad system it can generate extra polygon on intersection and result in much dense mesh

The SkinMod 'Bshop"

  • Better generate Skin
  • more organic
  • I can add extra detail and make hole is tricky but work really well
  • The quad generate skin is more suitable for low poly modeling
  • there are some mirror problems wen adding extra geometry
  • wen adding more than six vertex from a branch it can generate bad mesh, triangle, mesh disappearing etc.. but by little moving or adjusting the vertex can be fixed.

There are more but i don't remember in conclusion this new system have potential and i hope the old one get some love this is an amazing tool i can do very detailed model and with a little traditional modeling in edit mode i don't need to sculpt and get excellent result.

Some feature I would like to see:

  • automatic vertex group generation from branch with color for easy edit in edit mode after apply those modifier.
  • a way to control branch resolution from vertex selection like zsphere.
  • fix some problems with extra tools like the spin tool don't respect the mirror modifier > clipping option and some other tools.

Skin Mod Bshop example:





Khanh Ha (khanh_ha) added a comment.EditedSep 16 2015, 4:39 AM

@Rafael Monteiro (rafael) nolasco (kakachiex2):
Thanks for your detailed comparision. It help me a lot. I tried to follow the ZSphere approach from start, but it doesn't seem to fit with Blender context, especially, the old skin modifier. The unscaling feature and organic shape are way much great. I will try to make the Bskin meet there two requirements.
In a few days, I am planing to work on following problems

  • Reduce the mesh resolution
  • Apply some smooth scheme to make mesh more organic
  • Quadragulate the leaf vertex, instread creating triangle fan like now.
  • Add extra vertex to make the shape more natural.
  • Make hole feature become official (Add an operator button allowing designers to choose vertex hole)

For your description,

  • Can you tell me more about your statement "the generate skin are to straight is difficult to get smooth transition like the SkinMod "Bshop"". What do you mean "smooth transition"
  • Acyclic mesh would be processed better if designer manually select vertex for cutting graph to cyclic mesh. Do you think it would cause annoyed?

@Campbell Barton (campbellbarton) : Is there anyway to quadragulate a 2D polygon in Blender now? Like this [[ http://graphics.pixar.com/opensubdiv/docs/mod_notes.html | feature ]]from OpenSubdivion

changes from @Khanh Ha (khanh_ha)

  • Reduce MIN_VALENCE to 6
  • Add cyclic mesh support. Use RNG random generator instead of rand. Disable subdivision level. Some optimizations
  • Revert "Add cyclic mesh support. Use RNG random generator instead of rand. Disable subdivision level. Some optimizations"
  • C:/Program Files (x86)/Git/*
  • Revert "C:/Program Files (x86)/Git/*"
  • Bskin: Add cyclic mesh support. Use RNG random generator instread rand. Some optimizations

own updates

  • Merge branch 'master' into mod-bskin
  • Correct for building with gcc

re: "Is there anyway to quadragulate a 2D polygon in Blender now?'

Not sure how you mean, ... the only code we have to handle this is a bmesh tool: source/blender/bmesh/operators/bmo_join_triangles.c.

@Campbell Barton (campbellbarton): I mean now, for making the caption for leaf skin nodes, I just create a triangle fan connecting the vertex set to its bary center, which result in a high valence vertex. I want to quadragulate this boundary vertex set (all vertices lie on a plane, and has circle or ellipse form). You can look the below picture.

Ok here is what I mean by smooth transition i like the straight result is useful if you want to model hard surface like weapons, blade, hydrant etc... but is not good for organic modeling.

The orange is the SkinMod and Blue is your implementation Bskin

@Khanh Ha (khanh_ha)- Acyclic mesh would be processed better if designer manually select vertex for cutting graph to cyclic mesh. Do you think it would cause annoyed?

I think will give the artist more flexibility but if the artist have to go every time to the modifier windows will be Annoyed having control in the viewport could be a menu or widget.

NOTE: the Bskin have a shading and in some angle wen rotating the viewport i don't see the vertex correctly this dont happen with the SkinMod.

@Khanh Ha (khanh_ha), making quads shouldn't be such a problem, though you would have to pick an orientation for them to run along.
Think this can be an option.

I have commit new features on the branch.

  • Add ununiform scaling support
  • Add hole support by marking a leaf vertex
  • Add flat ending marking
  • Add bulging effect support at branch vertex
  • Reduce triangles happening at cyclic vertex stiching.
  • More smooth transition at connection vertices.

Note: this version is designed to work with Subsurf modifier.

@Rafael Monteiro (rafael) nolasco: for bulging effect, you could put the vertex inside the branch's sphere, and then scale to change the bulging shape. Scaling along x direction will make it higher, and along z direction will make it wider.

ummmm can you make a win64 build to test

  • Bskin: add ununiform scaling. add hole support. add bulging effect support at branch verts. reduce triangles at stiching region
  • Mod_bskin:remove unused functions
  • Resolve minor issues for gcc
  • Merge branch 'master' into mod-bskin

@Khanh Ha (khanh_ha)
Much better behavior, know i can get much closer to the shape I want here are some observation.

  • the hole option wen activated is not as perfect as wen I use my trick to make hole and don't let extrude inside check the attach blend file some vertex with the hole option and with my technique.
  • wen I use the bulging effects technique is too strong is much better if I can control the bulging with scaling X, Y OR uniform
  • I love the flatten option in combination with the hole trick I use I get nice result
  • i would like to see the Mark Loose option is really useful to make wings, fins etc...
  • I notice wen I'm moving a mirror vertex the branch rotate to much is not stable I don't see this behavior in the skin mod.

in the blend file check the two mesh at the top one with the Bskin and the other with the SkinMod move the two arm and see the rotation behavior.

Here are an screen of the result and blend file


@Khanh Ha (khanh_ha)
Much better behavior, know i can get much closer to the shape I want here are some observation.

  • the hole option wen activated is not as perfect as wen I use my trick to make hole and don't let extrude inside check the attach blend file some vertex with the hole option and with my technique.

Do you mean we need to change the depth of hole?

  • wen I use the bulging effects technique is too strong is much better if I can control the bulging with scaling X, Y OR uniform

is it right that we can rescale the bulging region along x, y or uniform now? Just select the supplementary vertex (it must lie inside the parent branch sphere) and rescale it.

  • I love the flatten option in combination with the hole trick I use I get nice result

I havent never noticed that it could be combined together. Feel so great

  • i would like to see the Mark Loose option is really useful to make wings, fins etc...

I haven thought about it. It's impossible to do with the current algorithm. What I can do is add ununiform support for branch vertex. So you can it make the branch sphere flatten.

  • I notice wen I'm moving a mirror vertex the branch rotate to much is not stable I don't see this behavior in the skin mod.

in the blend file check the two mesh at the top one with the Bskin and the other with the SkinMod move the two arm and see the rotation behavior.

Could you make a test case for me. or show me the image.

@Campbell Barton (campbellbarton) : Can I create vertex groups when applying bskin modifier? I can classifiy bmesh vertices lying on limb, or on branch nodes now. How can I put such vertices into vertex group?

@Rafael Monteiro (rafael) nolasco (kakachiex2): for unstable error in hole.blend, do you mean two arms rotate too much when we move the shoulder vertex?

when you move "A" , "B" rotate this behavior don't happen in Bshop skinMod version

Updated from branch

  • Reduce flickering when moving leaf node. (Test from hole.blend by @Rafael Monteiro (rafael) Monteiro (rafael))
  • Support isolated mesh part.
  • Clean code.

I also create a thread on blenderartists, but at the prentsent time, there's only few people replaying.
http://blenderartists.org/forum/showthread.php?382645-A-new-skin-modifier-implementation

can you make a win64 build I can't do it i don't have visual studio to do it.

can you make a win64 build I can't do it i don't have visual studio to do it.

I am cloning the 64 lib for building 64 version. It may take a while

ohh nice

the internet connection is so slow. it take me a day to clone library. here's the x64 binary.

@Khanh Ha (khanh_ha), checked the recent code, this seems a general improvement, but noticing some glitches still.

  • Setting radius to 0 hangs.
  • The highest number of forks in a branch influences the number of divisions everywhere else (I think this could be made to use higher resolution - local only to the branches of the fork).
  • Overall the number of faces created is quite high, from checking the code a while back, this can be reduced/made-configurable.

@Campbell Barton (campbellbarton): I am working on this.
Updated from branch:

  • Fix degenerate adjcent edges.
  • Fix wrong winding order in cyclic cases.
  • Fix wrong radius interpolation in cyclic cases
Khanh Ha (khanh_ha) added a comment.EditedOct 6 2015, 6:13 PM

@Khanh Ha (khanh_ha), checked the recent code, this seems a general improvement, but noticing some glitches still.

  • Setting radius to 0 hangs.

Fixed

  • The highest number of forks in a branch influences the number of divisions everywhere else (I think this could be made to use higher resolution - local only to the branches of the fork).

All forks are connected to each other, so the number of subdivision will be propagated, which needed to stich them together. Do you think there is some way to isolate forks with a high number of limbs?

  • Overall the number of faces created is quite high, from checking the code a while back, this can be reduced/made-configurable.
  • The lowest number of subdivision will be 4 in ideal cases, where all forks have exactly 3 limbs). In these cases, the current implemtation will create the same result like the old skin modifier. However, when just one fork have one more limb, the number of subdivision will be increased (5 or 6), which result in a non-smooth transition effect in limb shape. The reason is when the number of subdivison is 4, the mesh is shrinked so much due to subsurf modifier, but when the number of subdivsion is 5 or higher, the mesh is only shrinked a little bit. Therefore, I put the mininum number of subdivision is 5 or 6.
  • #define MIN_VALENCE 6
  • #define LEAF_VALENCE 5

Regarding mesh resolution and branching. Its possible to reduce the resolution between joints, eg:

This example adds triangles, topology could be adjusted - its just an example of how a single joint could avoid changing resolution or all connected branches.

Regarding mesh resolution and branching. Its possible to reduce the resolution between joints, eg:

This example adds triangles, topology could be adjusted - its just an example of how a single joint could avoid changing resolution or all connected branches.

Regarding mesh resolution and branching. Its possible to reduce the resolution between joints, eg:


This example adds triangles, topology could be adjusted - its just an example of how a single joint could avoid changing resolution or all connected branches.

This could be done. But is this recommended since it could create triangles, resulting a bad topology. Do artists prefer low resolution over triangles?

@Khanh Ha (khanh_ha), both are useful. It can be optional

yeah, I am going to try this approach.

Hi @Khanh Ha (khanh_ha) and @Nicholas Bishop (nicholasbishop)
I am using the current Skin Modifier not really for creating the base mesh, but also for branch-like 3D object modelling like:

  • Human anatomy: Vessels / Small intestine (2x subsurf->skin-modifier->3x subsurf)
  • Metal/wooden trusses and other constructions

I've got some features written down that I would love to see implemented but I do not know whether or not is there a headroom for new features in this implementation of a new skin-modifier.

So my question: Can I suggest the features here?

Here is a screenshot of how I work with the skin modifier:

Hi @Khanh Ha (khanh_ha), @Campbell Barton (campbellbarton) and @nicholas Francis (nicholas) Bishop (nicholasbishop)

After heavy testing I cant get the same result as the old Skin-Mod and i think the problems is because this implementation don't let me drive the topology were i want and the bulging feature is giving me more trouble i will make a video for you to see what i mean and how i use the skin modifier to get those result here is an example how great is wen you drive the topology i can make any kind of weapons, sword, character, creature etc.

Hi @Khanh Ha (khanh_ha) and @Nicholas Bishop (nicholasbishop)
I am using the current Skin Modifier not really for creating the base mesh, but also for branch-like 3D object modelling like:

  • Human anatomy: Vessels / Small intestine (2x subsurf->skin-modifier->3x subsurf)
  • Metal/wooden trusses and other constructions

I've got some features written down that I would love to see implemented but I do not know whether or not is there a headroom for new features in this implementation of a new skin-modifier.
So my question: Can I suggest the features here?
Here is a screenshot of how I work with the skin modifier:

You can suggest what feature do you want to add to the current skin modifier, with assumption that you think it is suitable with the current skin modifier context.

@Campbell Barton (campbellbarton): From your suggestion about isolating the skeleton forks (branches). I think we could integrate it with the Nicholas skin modifier. Specifically, for forks (branches) selected by artists, I will build convex hull from intersection points like my current approach, not from frames like Nicholas. This will ensure that we can always stitch fork's convex hull with frames on limbs. So, I think we should stop the BSkin modifier implementation here, and try to improve the Nicholas skin modifier.

wonderful news I think is the best decision to improve what already there I will collaborate for heavy testing and give feedback anyway I'm in the process to make a video showing how I use the skin modifier, tricks, tips, different application and technique etc...

So, I think we should stop the BSkin modifier implementation here, and try to improve the Nicholas skin modifier.

@Khanh Ha (khanh_ha), I think it would be best if (from the user perspective), this is an updated/improved *Skin* modifier.
and if this can support similar features theres no reason to keep both.

As for working on yours, or improving the existing modifier, this is up to you.

So, I think we should stop the BSkin modifier implementation here, and try to improve the Nicholas skin modifier.

@Khanh Ha (khanh_ha), I think it would be best if (from the user perspective), this is an updated/improved *Skin* modifier.
and if this can support similar features theres no reason to keep both.
As for working on yours, or improving the existing modifier, this is up to you.

I tried to combine Nicholas approach with mine to ensure limbs alway have 4 number of subdivision but it doesn't work. For symmetric limbs around (branches) forks, it create mesh like the Nicholas skin modifier, but for forks with unsymmetric limbs, the shape is quite ugly, as the attached image

Unsymmetric limbs


Symmetric limbs
.

It seems to be impossible to stitch square (4 number of subdivision) limbs to forks.
So, now I think the solution will be as following:

  • For forks with 3 adjacent limbs, Bskin modifier will always generate limbs of 4 number of subdivion.
  • For forks with more than 3 adjacent limbs. IF artists want to keep 4 number of subdivision levels all over the mesh, they will mark this fork as "ISOLATED", it will generate triangles when stitching, but if the adjacents nodes of this forks is near, I think it will look ok.

This approach may combine both advantage of the Nicholas skin modifier (4 number of subdivision level), and the advantage of the bskin modifier (support forks with multiple limbs.)

Hello @Khanh Ha (khanh_ha), @Campbell Barton (campbellbarton)

Here are some example of the SkinMod with multiple limbs and how I solved most of the problems
_Skin with more than six limbs begin to generate bad geometry and hole specially if you move the limbs asymmetric
solution: this solution work in some case I scale the center and move limb slightly to accommodate the geometry
_Skin with six limb's asymmetric I add a vertex near the center fork and them I move the limbs were I want

I never use more than six limb's I don't have a user case wen I have to use it but would be nice to have an stable multi-limbs skinMod. Here is a blend file with some user case with multiple limb's with mirror and without mirror


@Khanh Ha (khanh_ha), @Campbell Barton (campbellbarton)

Here is an scrip some kind guy in the stackexchange do for me I always extrude a vertex in all directions wen modeling with the skinMod I hope this can be usefull for you.
extrude vertex all directions

@Rafael Monteiro (rafael) nolasco (kakachiex2): thanks for this. Hope I can show the results in a week.
@Adam Majewski (adam) Preisler (Alphisto): I will work on it in the next week after I finish multi-branch feature for the current modifier.

@Khanh Ha (khanh_ha)
Thanks for your'e effort to improve the skin mod this is and excellent tool I have some old ideas for the skin modifier I think would be useful.

  • auto generate vertex group-color for limbs or manual this will ensure that the user can isolate part for most easy way to edit the mesh "similar to zbrush poly-groups" in Zsphere
  • would be nice to manually reduce the resolution on selected limbs " good for low poly modeling or if your skin model is ready to convert to mesh "
  • visual feedback for limbs with [ mark loose or other change ] could be a vertex with different color or size, so the user know this branch is market as loose " like the pin vertex in the UV "

I hope this could be implemented.

Nice improvement. But I agree that a way to change resolution between joints would be great. Either by defining a fixed number of "subdivisions" or, much better, by defining the spacing between 2 divisions (in blender units). Would that be possible?

Hi all,
I tried to change Nicholas skin modifier to make branch node topology better, without hole, without high valence vertex. But it doesn't work. The topology is even worse as we have to stich a vertex with 6,7,8.. valence on branch node convex hull with 4-subdivision number limbs, which results in a very very bad topology. I think Nicholas approach is best for 4-subdivision limb.
I will stop this project here. So sad.

Just found this today and it reminded me of this. Seems like the functionality is similar and maybe the intersection could be less bulbous?
https://www.blendermarket.com/products/metaball-skinner

@Adam Majewski (adam) Preisler: Hi Adam, thanks for suggestions. Metall ball is based on marching cube for generating triangle mesh.
Even it doens't cause self-intersections, the number of triangles is quite large. I am working on some way to improve skin modifier.