From BlenderWiki

Jump to: navigation, search

Started this wiki page to organize proposals for functionality which is currently being made on blenderartist threads which isnt so helpful. --Ideasman42 13:36, 18 February 2012 (CET)(Sign)

To wiki contributors: please try to maintain the alphabetical ordering when inserting new suggestions. --s12a

Bevel (Edge/Vertex)

Basis for inclusion

Not only it is critical to mechanic modeling or CAD, but it also can be a very very handy topology tool in organic modeling --trvoldemort

Expected Behavior

When beveling anything, whether a face, edge or vertex the tool should likely work by activating and then adjusting with the mouse movement, like most other tools. The precies settings can be fine tuned via the operator panel. By adjusting with the mouse you save unnecessary mouse movement and allow for very quick editing without needing to access the tool bar or menus. --Jonathan Williamson

User opinion 1

This is what users would normally expect from a simple, "single cut" bevel --s12a:

the red dashed line is the resulting beveled edge

User opinion 2

[Referring to the image in "User opinion 1"] The maximum the dashed line goes is until one face disappears completely. In that point the bevel can't continue. Look the image below, when the bevel makes disappear the shortest face that is the far the bevel can go, so bevel would have its maximum in the image on the right. Bevel acts on selected edges so bevel stops for all of them when in one edge the face disappears, or we would have different bevels for each selected edge obviously. The created faces the bevel tool creates can then be subdivided and these new subdivided faces can be arranged in an arc way that can be outwards or inwards and another slider would graduate from 0 to 100 being 0 flat and 100 a bezier arc formed by three points: two in the two exterior edges of the bevel and one in the original edge before the beveling.

I was reading the bevel discussion and seems all the tools will have a hard time with edges owned for more than two faces. Perhaps the best solution would be that the toolds do nothing with such edges and only work with edges owned by 1 or two faces. 3dsmax for example don't lets you build a mesh where an edge is owned by more than two faces.

3dsmax example

But what if the face is not "square". Look the upper face now bevel don't make it disappear completely. But bevel must stop also in the same place. So Instead of "when one face disappears" I want it to change to "bevel stops when one edge disappears".

what if the face is not "square"?

And an example of maximum bevel in these three edges. Bevel can't continue because one edge disappears.

Expected bevel behavior

And this is the actual wrong bevel tool in bmesh: 1) Beveled width is different along the bevel 2) There is the creation of a triangle on the vertex that has 5 edges. I think it is better to collapse the segment in the triangle to only one vertex as in my image above --Bao2

wrong bevel behavior

User opinion 3

(trvoldemort) I'm planning to make a concept tool that harmoniously merge "Bevel Vertices/Edges", "Extrude Vertices/Edges" and "Fillet". Still WIP.

Parameters of bevel operator:

  • Edges Selection: User select the vertice and edges to be beveled.
  • Cutting Mode:
    • Percentage: Bevel by cutting adjacent edges by a percentage.
    • Distance: Bevel by pushing selected egdes a certain distance along the bisector of adjacent faces.
  • Edge bevel order (1-inf): Number of cuts.
  • Vertex bevel order (1-EBO): Importance is demonstrated in a picture below.
  • Section Outline:
    • Outside 1/4 Circle.
    • Inside 1/4 Circle.
    • Outside 3/4 Circle.
    • Inside 3/4 Circle.
    • Custom Curve Object.
  • Whether to keep the original edges:

Different Cutting Mode Different Cutting Mode Different Cutting Mode Different Cutting Mode

UI suggestions

Different bevel strategies

Three different modes of operation could be included to suit different uses:

  1. The distance between the original vertex and the center of the beveled edge
  2. The distance between the original vertex and the end of the beveled edge
  3. The length of the beveled edge

1) and 2) differ increasingly as the edge angle increases.

Multicut bevel

Bevels with an arbitrary number of cuts (3, 5, 6, 7, ...) , and not only of a power of two (1, 2, 4, 8 ...) / recursive. Common in engineering designs.

Practical Examples

GSculpt

GSculpt is an "orphaned" open source software that has a comprehensive set of polygon modelling tools. Cutting tools are especially great. Here is the bevel behaviour of this program (Link to external video) --demohero

Wings3D

wings3d has a good bevel tool and is open source too. it could maybe save a lot of time to take a look at how their solution work. --Inspir3dArt

Their solution only works for closed meshes. Wings3D doesn't allow open ones. Granted, beveled geometry is closed most of the time, but at the very least special cases would have to be added. --MadMinstrel

XSI

I found XSI 4.0 bevel tools example from youtube. There are many options. Link to video on Youtube --demohero

I think that video explains it much better than I would do. However since I already made this example, I'll post it.

Settings are on the right of the objects. First one on the right of the original object is plain vanilla bevel with 'manage collisions' on which welds vertices that would go over the edge length into the object. On the bottom of the original object is the same but with 'uniform mitering' on which should guarantee that the edges are of equal length. On the right of the bottom image is a fancy version that has 'rounding' on (multiple bevel) and a curve to the bevel with tangency and a extrapolation amount (meaning that new verts move on their normals by that amount). Finally on the top right is the side faces beveled with automatic hard edges on the contour of the bevel. Link to external picture showing an example of how Bevel works on XSI --el_diablo

Bevel (Face)

Basis for inclusion

Fundamental modeling tool for hard-surfaced modeling, in particular for architectural visualization.

Options

  • Amount/depth - depth of bevel
  • Recursion - sets the number of cuts in bevel (can be set via scroll wheel, similar to loop cuts)
  • Curve - allows you to bulge the bevel in or out

Suggested Workflow

  1. Select face(s) to bevel
  2. Press W > Bevel
  3. Move mouse to adjust bevel amount (constrain to increments with Ctrl )
  4. LMB Template-LMB.png to confirm
  5. Finetune via operator panel if necessary

Face bevel with no recursion and no curve

Face bevel with no recursion and no curve

Face bevel with recursion of 3 and no curve

Face bevel with recursion of 3 and no curve

Face bevel with recursion of 3 and curved in

Face bevel with recursion of 3 and curved in

Face bevel with recursion of 3 and curved out

Face bevel with recursion of 3 and curved out

-- Jonathan Williamson

Chamfer

(Closed for duplication)

Drop Tool

Bmesh-drop-tool.png

Useful for cutting holes and indentations into surfaces. --MadMinstrel

Snapping on surface is already able to project vertices like in first step. Blender is just missing last step : retopology of Quads into Ngons using Circle's edges.--Zeauro

The "Drop Tool" (on the new BMesh suggestions wiki) looks similar to what is mentioned in [Link to Vimeo video]. At 22.30 and 29.15 it's being utilized, very useful! Some snap option is enabled in 3ds Max. --Guran

Edge improvements

Simple operations on the edges, as implemented in this Add-On: -- mandragora (via Witold Jaworski)

I wish the internal edges issue was fixed, but that was in trunk before the merge too and otherwise Remesh works fine. Booleans still triangulate faces, but also work fine otherwise. --MadMinstrel

Edge/Vertex Extrude

Options

Toggle between the two below options by holding down Alt

  • Extrude on Normal: Act as the current extrude tool by extruding the current selection along the normal.
  • Free Extrude: Extrude selection freely, regardless of element type, unless otherwise specified.

-- Jonathan Williamson

Suggested Workflow

TODO

There should be a way to disable/togge (in user preferences) auto constraining to axes when extruding an edge - it really irritates when doing more organic modelling. --PLyczkowski

Face Extrude

Extrude on Normal

Act as the current extrude tool with faces by extruding the current selection along the averaged normal or normal of the active face.

Free Extrude

Extrude selection freely, regardless of element type, unless otherwise specified.

Additional options

1. Twisting extruded faces by a given angle around the extrusion direction -- mandragora (via Witold Jaworski)

2. Allow to Pin some vertices - it would allow to obtain in single operation an effect like on this picture:

Extrude with vertices pinned.jpg -- mandragora (via Witold Jaworski)

Fillet

Edge Fillet

From zmj100's edge tools. They do not currently support ngons or faces at all (only edge outlines), but work beautifully:

As with other tools I feel the fillet should work by activating the tool and then adjusting with the mouse.

Suggested Workflow

Select two or more connected edges to fillet, then press CtrlE > Fillet and move mouse to adjust the size of the fillet. Moving in a negative direction less than 0 will create a inside fillet, moving in a positive direction greater than 0 will create a normal fillet. After clicking the LMB Template-LMB.png to confirm the fillet you may then adjust the number of vertices in the fillet via the Operator panel or set it as an Outside fillet. --Jonathan Williamson

Regular

Edgefillet.png

Outside

Edgefillet_outside.png

Flip

Edgefillet_flip.png

Face Fillet

TODO

Inset / Offset

Basis for inclusion

Inset should be made into a simple and quick tool. It should only be applied to a string of line segments (whether closed/open or co-planar/non-planar is valid). A common misunderstanding is that Inset is applied to faces. No, it's not. A face is a particular case of a segment string. --trvoldemort

A great example of the inset tool is the Inset Extrude add-on for Blender 2.62 and back:

http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Modeling/Inset-Extrude

It works very well (in most cases) and the workflow is good by using the "I" key to activate and then move the mouse to adjust. --Jonathan Williamson

Modes of operation

zmj100 edge tools include two modes of operation from which bmesh core tools could take ideas:

Regular / Classic

Negative inset values create an inset polygon, positive an offset polygon.

Inset_outline.png

Face Inset Fillet

A hybrid between Inset and Fillet. A similar bmesh tool (even better with hole support) wouldn't create the nasty triangles on the rounded edges visible below.

Normal

Face_insetfillet.png

Outside

Face_insetfillet_out.png

== Practical Examples

Wings 3d

Inset options in Wings3d. MMB inset options - Link to Youtube video --kakachiex2

Inset LMB WINGS inset tools have the option to bump while inseting - Link to Youtube --kakachiex2

Knife

UI Suggestions

At the moment there is no feedback in the header on what hotkeys/actions are available when the knife tool (K) is activated. Hold Ctrl = snap to middle of the edge, ⇧ Shift = no snapping, angle constraint (C) etc. --Guran

It should be possible to undo the last step (click) when the knife tool is activated. --Guran

I don't like the options of snapping. It's either both edges and vertices (which means it will be hard to do a cut very close to a vertices without snapping to it) or no snapping at all (⇧ Shift) (which means that it wont snap to the edge you want to cut to, having no snapping at all is not what you want in most situations). --Guran.

I think that an additional option "Snap the Last Only" would resolve the problem described by Guran. It can be used with one of the knife snap options. Currently, when the Ctrl is pressed (i.e. "Midpoint" snapping) a single straight cut across multiple edges divides each of them in the middle. "Snap the Last Only" option (availabe under the F6 key), would apply the midpoint snap only to the last edge. (All previous edges would be divided by the straight segment, between the initial knife position and midpoint on the last edge) -- mandragora (via Witold Jaworski)

An option to snap to the middle of a face might be useful. --Guran

Just to not miss the feature which was present in Blender 2.4x: restrict the cut to selected edges, only. It was reported in bugtracker (id=28716) and discussed with Howard T. Probably on the TODO list -- Witold Jaworski

User opinion 1

(trvoldemort)

Operation Parameters:

  • Snap Mode: (be sure we can always change it during cutting)
    • CtrlAlt Vertices.
    • Ctrl Edges. (WheelUp Template-MWUP.png/WheelDown Template-MWD.png switch between Mid/Trisect/Quadrasect Point/)
    • CtrlAlt⇧ Shift Faces. ( Yes ... we do need that. To be able to snap to barycenter is great. For example, better T loop making.)
    • Ctrl⇧ Shift Increment. ( Handy for perfectly horizontal/vertical/diagonal cutting.)
  • Cutting Power:
    • Cut Selected.
    • Cut Visible.
    • Cut Everything™. (Sometimes I need to give the model a super straight cut that penetrates every thing like cutting a complex model by half.)

Other suggestions:

  • Important! Be able to snap views using numpad during cutting.
  • Maybe ⇧ Shift for accurate mode as usual?
  • additional option "Disable Ngons": disabling generation of the ngons during the cut. (This means creation of additional triangular or quadrilateral faces, as in Blender 2.49); -- mandragora (via Witold Jaworski)
@mandragora: I think this should be separated from knife. IMHO, knife should be the tool for manually change topology, it should be highly predictable like drawing on paper. So there should be an independent tool for trianglarize n-gons. --trvoldemort

Added functionality: Swiss Knife

I'm using the Super Knife a lot in a bmesh build of Blender I downloaded form GraphicAll.org. Often, however, I feel it could be enhanced by making it not only cut through existing faces, but also create new geometry (vertices/edges) when using it on empty areas. It would save some time and make certain operations more precise and quicker rather than having to extrude at a later time and them resuming the cutting work. Of course, since this is generally an unwanted behavior, it could be toggable. Or it could be an entirely different tool instead. --s12a

Loft

Basis for inclusion

Connect a series of edge loops (in order) with the least distortion or other requirements (should be highly customizable). --trvoldemort

Loop Cut/Edge Slide

Non Prop Lenght/Percentage (P) and "flip control side" (F) from Blender 2.49 is missing. --Guran

Non Proportional Mode for loopcut/edgeslide would be very useful to have back. Especially for subsurf hard surface modelling where you have to add supporting edge loops everywhere. --uvwxyz

Link to 2.4x wiki about Edge Slide


Also missing from 2.49 is loop cut smoothing. You could define how much smoothing a cut got. This is very useful for increasing mesh density on parts that have some degree of curvature to them. --tyrant monkey

Loop Selecting

When a plane is subdivided, loop selecting it's edges selects the whole plane boundary. It would be helpful if there was also an option to select only the loop, not the whole boundary:

Planeloop.jpg

A way to select a partial loop - after selecting two edges next to each other in a loop, an option to select more and less edges in that loop.

I found the two above features useful when modeling in modo.--PLyczkowski

Manipulator

"Active" setting

When the manipulator is set to "Normal", when two or more faces are selected it averages their normal direction. The "Active" setting would put the manipulator on the active face and align it to it's normal.

Here is how it would look like:

File:Active manipulator orientation.jpg

It's similar to the "Element" setting in modo, which is extremely useful.

Ngon holes

Actually, my #1 wish for the mesh system is Ngon holes in Ngon faces. --Freemind

Full support to holes would allow total freedom and very clean meshes after boolean operations. --s12a

@Freemind: Agree! Holes are the obvious missing slice of pie in polygon system. The only problem is that Catmull-Clark is not suitable for holes. But they are great for fast sketches, and can be manually/automatically converted into hole-free polygons. --trvoldemort

Remove Doubles - merge vertices to edges

Removedoubles-vertices-to-edges.png

It would be a good idea to allow merging vertices into edges if they occupy the same space or are very close, as an option. It comes up a lot with hard surface modelling and it takes a lot of steps to do manually. --MadMinstrel

Selection Changes

Mode switching

Hopefully the new[-ish] mesh API will remove the annoying (and performance-killing; particularly on large meshes) need to toggle between Object mode and Edit mode in just so Python scripts know which vertices are selected. </passive-aggressive feature request> :P --Fweeb

@Fweeb: Second that! --trvoldemort

It's less BMesh related - A way to assign hotkeys for switching modes, for example F1 - Object Mode, F2 - Edit Mode etc. --PLyczkowski

Subdivide Changes

Provide a complete interface for Catmull-Clark algorithm. Not just edge crease. But the weight of every vertex, edge and face should be changable. So that it can theoretically approch any NURBS curve. --trvoldemort

Vertex Slide

Discussion

Is Edge Slide really necessary?

I don't think vertex slide is that necessary. After all it can be perfectly substituted by Alt. combined with Scale. But maybe I'm wrong. Some one provide a situation where it can be handy? --trvoldemort

You can't slide more than one vertex at a time with that method, other than co-linear vertices. This is how it should work for example (Link to XSI video example on Youtube). --el_diablo

Curvature-aware slide

I used it numerous times in Softimage, only thing its implementation is missing is taking into consideration subsurf curvature. And there are tools that do just that in other packages. To explain more, for example when I do automotive modeling i tweak and slide arbitrary vertices with proportional (fallof) tool to get them in a better position. Without slide you quickly introduce bumps (actually you introduce them with slide also, but not so easily as without). --el_diablo

Oh. So that was sliding on the surface. I wasn't listening to the audio, so I thought he was just moving vertices around. --Madminstrel
Now I agree with you. Talking about subsurf curvature (or more precisely, NURBS curvature), I think Blender's current so-called edge slide is also a primitive one, all it does is a batch of so-called vertex slide. A "slide" operation, if we define it "change the low-poly model but minimize the influence on its sub-d generated high-poly version", Blender should definitely consider NURBS curvature for a better result.
A curvature-aware slide is like this -- trvoldemort:
Curvatureaware_slide.png
I don't get it. Why if I want to slide that edge is good that instead the image in the middle (that I expect) must I be given the one on the right (I would be shouting names on the developper if that were the case). I want it to slide to the image in the center always. Is there some critical need of such a thing in modeling mechanical objects perhaps? --Bao2
Let's say you have a subsurfed cylinder and want to slide a loop (length-wise), but preserve the circular shape. The curvature-aware slide will do that for you and minimize pinching. This should also be added to Loop Cut for adding new loops but preserving subsurf shape. It's useful for when you're modelling something like, say, a gun with a round barrel. --MadMinstrel
Well, well, a curvature-aware slide! I've been thinking about coding such a tool. In fact one can make a more generic smoothing or relaxing tool that moves vertices according to the normals of the neighboring vertices. Then, edge slide would simply run the generic tool during transform. It's a bit differrent from a curvature tool though. A curvature-aware slide relies on the fact that we have two 2 "external" edges connected to each vertex of the edge loop so a curvature calculation is possible (we can fit a quadratic surface on these points). For a more general tool (using more than 2 other points) I think a linear combination of nearby vertices/normals can be used. --Psy-Fi