Page MenuHome

Added new options to the add curve menus for easier modeling
Needs ReviewPublic

Authored by Alex Strand (astrand130) on Mar 2 2019, 8:29 AM.


Group Reviewers
User Interface

In this patch I try to make modeling with curves a little less clunky so the modeler can start creating things like wires and pipes without having to visit the curve properties menu.
To do this I changed the defaults for curves to something more reasonable and added some common curve settings to the builtin Add Curve menus.
The changes are:

  • All New curves will default to Full fill mode (previously it was half, which had very few use cases and mostly just caused a workflow paper-cut)
  • All New curves will default to a Bevel Resolution of 4 (this seemed like a more reasonable default for today's hardware)
  • Builtin Add Curve menus now have bevel depth, curve resolution, and bevel resolution values that can be changed without having to exit the 3D View.

This addresses the post I made on Right-Click Select that got a pretty decent amount of attention and support.

I'm more than happy to make changes to the patch to make it better fit in with the code base/vision of blender (This is my first code contribution so it might need work).

Thank you!

Diff Detail

Event Timeline

Alex Strand (astrand130) retitled this revision from Added new options to the add curve menus and changed the default curve fill to full for mesh easier modeling to Added new options to the add curve menus and changed the default curve fill to full for easier modeling.Mar 2 2019, 8:50 AM

I've been made aware that the extra add curve options only make sense in the context of object mode (creating a new curve).

It seems the issue stems from the fact that Curves are added as primitives which can be created in both object and edit mode. So a fix to this might require some unwieldy code duplication.
Unless someone can suggest a potential fix or is okay with this bit of UI inconsistency. I'm thinking of leaving out the extension to the add curve menu and make my only change a default to full fill mode/bevel resolution.

It still works fine in my testing and speeds up modeling, It just has some unnecessary sliders when adding a curve in edit mode.

I think this change makes sense.

Indeed, it only makes sense to add Bevel Depth, Curve Resolution, and Bevel Resolution when adding new curves in Object Mode. These options are per curve data, not per individual curve spline.

So if you can make it so Bevel Depth, Curve Resolution, and Bevel Resolution only appear when adding curves in Object Mode, I think this would be a great little improvement.

I would leave out resolution from the add operator regardless, it should just have some reasonable default.

Bevel depth would be nice to have there, it can be done with a custom UI drawing function (search code for ot->ui = for examples).

I can commit just the defaults change already.

Thanks for the response. Good to see the curve default changes are pretty much ready to go. Feel free to commit those.

I'd give a heads up to addon developers using curves that there were some changes to the defaults (in my testing no real compatibility was broken with the shipped add-ons but sapling generator's default poly count was a little high).

I'll try to can separate the curve menu using your suggestions later today.

Alex Strand (astrand130) updated this revision to Diff 14167.EditedMar 13 2019, 11:55 PM

I split the properties between edit and object mode using a custom interface.

As for the topic on putting curve resolution in the operator menu (I actually went for a walk and reflected on it) I originally included it because it provided easier access to (what seemed to me like) a useful curve setting that could be accessed without having to jump across the interface. My argument for adding curve resolution is because there might not be a reasonable one-size-fits all curve resolution, the modeler may be working on anything from a mobile game to a production render and may be modeling anything from a stem for a flower to an industrial sized pipe. My goal for this bit of UI was to minimize the amount of times a modeler would have to jump into the curves menu and while I decided early on not to cover every use case (tapering, path animation, etc...) I figured if I was going to add bevel depth than simple control over geometry density was a reasonable enough addition to the user interface (much like one might want change the resolution of a circle, sphere, or cylinder). I'm open to feedback on this still.

It's pretty much done at this point but if there is anything else I should change please let me know. Thank you!

Alex Strand (astrand130) retitled this revision from Added new options to the add curve menus and changed the default curve fill to full for easier modeling to Added new options to the add curve menus for easier modeling.Mar 13 2019, 11:57 PM

The Bevel and Curve Resolution are basically akin to U and V resolution on a UV Sphere. So I think yes, it does make sense to add both here.