GSoC 2019: Custom Bevel Profiles

The idea of not adding segments to straight line sections makes sense for some use cases but not all. People still want multiple segments with profile = 0, .25, and 1 cases, to set up for future modifications I guess. And see the other Bevel (2018) thread where DanPool expresses several times how much he has wished for multiple segments on the flat sides of insets.

Hmm, I guess that makes sense. I guess I just won’t exclude them and I’ll add the same number of samples to each segment regardless of whether it’s straight or curved. When there’s a remainder the vector-handle points will just be the least curved so they won’t be prioritized. That should actually simplify what I’ve written so far.

I’m hoping to finish this up today. I’ll post here when I do.

While in general I think we should try hard not to add more options, there may be a case for having an enum option for sampling strategy, where one might be “spread the segments as evenly as possible” and another might be “adapt heavily to curvature, putting the new samples where the curve is curviest”. But for now, you might as well just choose one method and implement it. Got to concentrate on getting to a master-worthy set of well-implemented features rather than all possible things that would be useful but nothing completely done.

1 Like


I’ve added a new option to disable sampling of straight edges, here is a result.

Remaining Tasks

I’m moving on from sampling this week, so I figured I would give an update on my plans for the rest of the summer. If anyone thinks there’s something important that I should be prioritizing instead, now’s the time to make your voice heard!

  1. Cut-off vertex mesh method. A simpler, more predictable method for creating the vertex meshes. I’ll try to budget a week for this because it may require a fair amount of new code.
  1. Add “harden normals” functionality. Set custom normals for the profile’s faces based on the curvature of the profile at each vertex.

  2. Fix miter profiles. The miters should still use a normal profile rather than a custom one.

  3. Finish RNA API for profile widget. This will allow using the profile widget in other situations with Python. This isn’t strictly necessary for this project, but I shouldn’t be adding the profile widget without finishing its API.

  4. Get the profile widget into the bevel tool menu. The bevel tool is still broken. I’ve made progress on getting the new functionality into it, but I’m still working on it.

  5. Fix profile orientation next to impassable BevVerts. Just a bug that I think might take a bit of time to fix in situations like @RonanDucluzeau pointed out:

  1. Pipe ADJ vertex mesh case. This should still be a special case with custom profiles, so I’ll have to figure out how to change it to make it work properly.
    Screenshot%20from%202019-06-19%2010-17-57

  2. Bug fixing, documentation, and cleanup.

8 Likes

just applause, the rest of the words are superfluous :clap::clap:

3 Likes

Hm autoupdate for the modifier seems to be broken now? (it doesn’t update the mesh for me after moving points in the profile. (Also for is it just me or is there 2 preset drop downs)
I think user experience wise the thing I’d want most is a symmetrize button to make perfect symmetrical shapes.

Yeah, unfortunately the lack of updating makes it a bit frustrating to use. The strange thing is it was working before! I’m aiming to fix it this next week though, I’ll let you know when.

The double presets switch is just me experimenting with different methods to create the button.

For the symmetrize button, I could pretty quickly make something that could mirror the first half of the points starting from one side. What I’d like more is a symmetrical mode though like clipping where it stays on until you turn it off. I think I want to finish essential features and bugfixing before I implement this, but it can be the first thing I do after that.

2 Likes

I just pushed a fix for this problem. If you’re using the windows daily builds, they should include the fix by the end of the day.

Say would it be possible to make a Bevel option for something like this?


Instead of using a bevel profile you could just change the shape by entering the number of steps or he width you want. Could be useful for adding stairs for Architecture Visualisation or add detailing to some models. What are your opinions? Do you think this is feasible? Hope I’m not asking too much. :slightly_smiling_face:

1 Like

@13AUDDIN

A stepping profile should be possible using the curve profile implementation.

2 Likes

It’s absolutely possible to build something like this with a custom profile. In the screenshot the bottom step is incorrect though because of a bug with the sampling that I still have to fix.


We could definitely include a preset for steps, but it would only have a certain number of steps, and I’m not sure it makes sense to include a “4 steps” preset. It could be that when the Steps preset is selected there could be a slider for the number of steps and some functionality to generate the right profile. It wouldn’t be complicated but it has a relatively limited use case so I’m not going to prioritize it.

3 Likes

Thanks, makes playing around much more fun!

Well if you could just toggle option that automatically disables half of the widget space and mirrors that in real time… obviously that would be optimal. However, I felt that it might be too big so I hoped we could at least get a button that just mirrors the profile.
I recall before there was toggle to make the points on the profile set the amount of divisions to make (rather than the segments slider) but I can’t find it anymore. Was the idea scrapped?

1 Like

Don’t worry, I want to make the real-time symmetrical mode, it sounds like a fun task.

And yeah, there was a “Sample only Points” option, but after some updates I made to the sampling algorithm it was redundant with the number of segments set correctly. But we’ve discovered that it was also useful just as a way to set the right number of segments, so I’m thinking about how to get back that functionality.

3 Likes

speaking of “symmetry” some time ago I made this proposal for the evolution of the loopcut tool, but I think it could be a valid idea also for your tool …

in practice it would be an interesting thing to be able, after subdividig the segments, to scrape them, widen them and tighten them starting from the central segment “like an accordion”

imagine the ease of all the animations that would evolve …

3 Likes

Cinema 4D 21’s new bevel

15 Likes

The feature which I’ve been waiting for since long ago is the “avoid self intersection” option. Would be great to see in blenders bevel some day.

Aside from that, great progress as it is already. I enjoy watching the new achievements in action. Keep it up!

1 Like

I was refering to something like that (0:50) in a previous post. Seems like it could be used in a few more cases than I expected.

Hmmm been playing around a bit more today and is really quite nice. I guess at the moment the biggest faults I feel in the workflow are outside of the scope of the GSOC. (The lack of vertex/edge groups for Bevel modifier. Atm it is kind of rough to target the edges you want. Ideally I’d want to define all the detailed edges in one modifier but now I have to split objects into multiple parts because I can basically only do 1 profile per modifier stack. (Not saying this is something you should fix just noting it out. I think groups for bevel was something that was on Trickey’s to do list)

I already mentioned symmetry before. But something I noticed that kind of bothers me is how big the modifier has grown. I don’t know if this would be out of question design wise but I think adding some drop downs might make the modifier nicer to work. I was thinking that ‘Limit Method’ to ‘Set Face Strength’ could be one drop down, then ‘Miter Patterns’ to ‘Vertex Mesh Method’ could be one. The Custom profile kind of acts as dropdown already because you can untoggle it but it still retains the settings. Not necessary change (Nor something everyone necessarily agrees with) but if you have extra time might be worth considering.

Just sayin' it big

:thinking:

are you using only the modifier?

haven’t you tried to enter edit mode, select the segments that interest you and use the bevel tool and then activate “custom profile”?

maybe I’m misunderstanding and are you referring to something else?

Thanks for the feedback! Yes, I agree the size of the modifier makes it a little difficult to work with when you want to add a couple profiles to the same object. A better modifier stack design would definitely help this, but unfortunately nothing like that made it into 2.80 by default.

The profile widget itself is also pretty large, but I made it that way in order to keep is square rather than rectangular as the size of the properties pane increases. I wonder if a way to minimize it while keeping “Custom Profile” enabled would help.

As for collapsing some of the settings to drop downs, I tried that a while ago and I wasn’t really happy with how it looked. First of all the split between property description and then the drop down itself is way too far to the left. I think that’s a problem all over Blender so maybe we can get that changed. But secondly, it’s just harder to see all the available options, and it almost looks more intimidating. I can make that change for a while in the builds though just so people can try it out though.

1 Like