Indeed, my goal is to create a tool which can generate very complex geometry. From a developer perspective, the main challenge is not to have rounded shapes but shapes with a useful topology. A quick approach which might be feasible as well would be to generate a triangulated shape with random but evenly distributed triangles. As you’ve said this would need a retopo afterwards.
With my current approach I am expecting a topology like this:
This kind of generated topology looks really okay - it’s a bit stretched in places but if it can accomodate any shape drawn by the user it’s actually pretty convincing ! after all this is a tool for concepting and early shaping, so I wouldn’t expect it to output final animation-ready topology… just more or less regularly spaced polygons with a flow that makes sense - the goal is to be able to sculpt on top of this and not need a complete remesh right off the bat. This looks a bit like the skin modifier output, by the way… if you’re looking at other means of generating topology there’s also the method used in remesh modifier - dual contouring (https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.62/Remesh_Modifier) and there’s dyntopo too, although I have no idea how it works…
+1 for the brush version as well - I reckon it cannot be tweaked after a stroke while an operator can, but maybe it can have options of its own.
I disagree. It does not look able to handle sharp concave shapes.
If there is a way to do a negative stoke after the first one, concave shapes with sharp angles will be something wanted.
It already seems to produce triangles that will be problematic if user wants to go to a higher level.
You have control of the drawn stroke. You can force it to have an even number of edges.
So, surface can be filled by a grid and extruded and loop of extrusion can by divided.
As is, you obtain a quads only geometry done without a remeshing.
It is as stupid as a cube subdivided and as a cube subdivided, it can be kept sharp by user or smoothed with a smooth brush.
Wouldn’t geodesic triangles be a better pattern to fill arbritary shapes? That’s what I was expecting, something similar to a dyntopo detail fill.
Something like
I have to agree with other artists here, I was thinking that you will implement the tool only for dyntopo and full triangles. I was thinking that GSOC is so short that it might be better to do something quick and usable and if you need a better implementation, you will fix the old one bit by bit when you have time even after Gsoc. You are the coder and it is all up to you.
Thanks for the report.
I have reworked a big portion of the code now. It should build now successful.
I am hoping to get the basic mesh generation done tomorrow currently it is not much to see.
If you want to try you can rebind the keys in the preferences/input/3DView/Sculpt/Draw Silhouette or use alt+leftclick if available.
The binding will change, it is just temporary for testing.
Looking at the gif in your report, the generated geometry looks very rather flat. Will it always be this thickness, or is the thickness dependent on shapes complexity?
When drawing a circle, I’d hope for the shape to be a sphere (as the image up there), will that be the case? I brought up Teddy3d as an example before, and I still think it’s a nice example to take your cues from.
Hi Mighty Pea,
the thickness will be dependent on different factors.
The most basic setting is the depth option. You can set your preferred depth and it will generate a shape with that thickness.
If you draw a circle, depending on the smoothing factor, either a sphere or a cylinder is created.
The smoothing factor is fixed between 0…1.
0 = being a cylinder with hard corners.
1 = results in a sphere.
0.5 = is a cylinder with rounded corners.
Don’t expect a perfect sphere though, a circle is basically the worst case for my topology analysis algorithm.
You can draw a new silhouette by pressing alt+LMB within sculpt-mode.
This is just a temporary key-binding. If you are on Linux and pressing alt is system reserved you will need to rebind the key in the user preferences.
preferences/input/3DView/Sculpt/Draw Silhouette
Yes it working pretty well here, i tested it and made some notes and a short video:
The operator is looking good so far it crashes with default setup: https://youtu.be/VdIV5Mb2XX4
Wow, thanks for the great video!
I am glad you got it working.
I will try to fix and improve the points you mentioned in the video.
About the crashes with default setup:
The values are restricted to a certain range but when loading with older factory settings it is out off bounds.
Here in Linux it crash whit segmentation fault when I use my Blender configuration. But I can use the brush with clean Blender config folder. I’m not sure if the problem is some addon I installed or something else …
Thanks for the info! Should be fixed now. Your compiler is a little more strict about pointer arithmetic.
Unfortunately it is not ready for widespread use yet. In the last week i finished the features i want to implement in the GSoC timeframe. I added a lot of new methods to support connecting new and old geometry. This also introduced a lot of bugs. It is currently barely usable due to two or three mayor bugs. In the next week i will try to solve as many bugs as possible and polish the tool.
In addition to that a couple of other features still need to be implemented. General usability features are not yet implemented. For example drawing on the virtual view plane set by the 3D Cursor is tedious and the depth settings are just a gamble to get right.
I am planning to polish the tool and add a couple of usability features after the GSoC. But for now I am trying to get the bare basics working.
This does not crash here on Linux. But as I mentioned time ago, there is no crash but only with empty user configuration folder (I rename “2.79” folder in /home/USER/.config/blender). I’m not sure where the incompatibility that makes crash is in case you use your usual blender configuration folder.