I made a completely new solidify tool and want to make it into a C modifier now. It performs ok with python but for bigger meshes it just takes to long (it has basically O(N) time complexity so not that bad)
The goal of the new (as I call it for now) Manifold Solidify is to give meshes a manifold skin no matter how messy the vertex normals and topology are. I even included some experimental intersection fixing for beveled edges and closing holes. I uploaded the addon to github so you can try it.
I would like to know if a modifier version of that tool could make it into an official blender release (maybe even 2.81 if everything goes smooth). I would like to start programming it and would like to know prior if I’m wasting my time.
Just an idea, but could be good if you implement it as an option for the current Solidify modifier instead of having a new modifier (in the same fashion we have in the Remesher modifier).
So if you do a patch, then if would be reviewed and I think it could be easier to implement if it’s an option for an existing modifier than having a new separate modifier, and in this case it is totally related IMHO.
Thats a good idea. I would need to make it just like in the Remesh Modifier, that the options would get switched out for other ones if I switch the mode to manifold. I could also implement my intersection code into the default solidify and it could also benefit from it (I think, I need to check tough).
It won’t have the offset option, because my modifier does not distinguish between front and backside. That is also the reason why it work in all cases and why the current solidify does not work in all cases. As far as I have come yet I have implemented it as a second option (just like the modes in Subsuf Modifier) so you will be able to chose the correct solidify method for your object. Maybe I will add some of the additional features of my variant (when it comes to the position calculation of the new vertices) to the original simple solidify method.
Currently I’m stuck at a point, where my Modifier runs, but Blender stops after running it in some endless loop outside my code and I don’t know where. I will ask this in the #blender-coders chat and see if someone knows a reason, but if someone here knows a reason, don’t hesitate to answer.
I made a diff here: https://developer.blender.org/D5766
This is my first code contribution to blender, so I hope everything is correctly done. Also If someone could review my code to have it in blender 2.81, that would be great!