テンプレート:Release Notes/2.42/Mesh/Editing

提供: wiki
移動先: 案内検索

Mesh editing

True X-mirror mesh editing!

Set the option in EditMode, in 2nd mesh tools panel. It only works on transform options now (grab/rot/scale), and of course assumes a near-perfect symmetrical mesh. Mesh Object itself can be on any location though (and rotated etc).

Sharp Flat select

sharp/flat mesh editmode selection tools. The documentation can be found here:

http://mediawiki.blender.org/index.php/Requests/SharpFlatSelect

Selection

 Added "select same group" to select group menu. Accessed via Shift+G while in Mesh Edit Mode.

Depending on your mode; face, edge, or vertex, you will get different selection options. Try them out and be amazed! *more details to be added*

Edge Ring and Edge Loop MultiSelect

Mode: Mesh Edit Mode (While in edge or face selection mode.)

Hotkey: CtrlE

Menu: Select → Edge Loop/Edge Ring...

Description

Two new selection options can be accessed while in edit mode, they are Edge Ring and Edge Loop. You can access them through the select pop-up menu or by pressing Ctrl-E while in edit mode. They can be used to build large selection sets quickly.

Example

Select 1 or more edges and run Select - > Edge Ring .
The result of the Edge Ring Selection. Now run Select -> Edge Loop.
The result of running Edge Ring select followed by Edge Loop select.


inclusive selection mode conversion

inclusive selection mode conversion

Vertex Path

Mode: Mesh Edit Mode (Uses the last 2 vertices selected)

Hotkey: W

Menu: Select → Vertex Path

Description

Vertex Path will find the shortest path of vertices between the last 2 vertices selected. There are 2 options for determining the shortest path. One finds the path with shortest physical distance or edge length, and the other finds the path with shortest topological distance.

Examples

The two vertices selected before running Vertex Path.
The result of choosing the Edge Length option.
The result of choosing the Topological option.

Technical Details

The tool uses a straightforward implementation of Dijsktra's algorithm and may be a bit slow on extremely large meshes. As a speedup you can hide the parts of the mesh that you are not working on and they will not be searched.

Loop to Region and Region to Loop

Mode: Mesh Edit Mode

Hotkey: CtrlE

Menu: Select → Loop to Region, Region to Loop

Description

Examines the current set of selected edges and seperates them into groups of 'loops' that each bisect the mesh into two parts. Then for each loop it selects the smaller 'half' of the mesh.

Examples - Loop to Region:

Selection
Loop to Region
Selection
This tool handles multiple loops fine as you can see.
Selection
This tool handles 'holes' just fine as well.

Example - Region to Loop:

Selection
This is the 'logical inverse' of loop to region.

mesh align

Made mesh align to face/verts also align to an edge and a verts normal, existing functionality was not changed. usefull for rotating about an edge.

curves

 Wanted feature for curves: a render-time resolution. This option is
 located under the 'def resolu' button. If not zero, it assigns this
 resolution to a curve on render.
 Also copies with ctrl+c menu.
 

transform

 Bug #2839: Shift key not working in Shear, Push-Pull and shrink-Fatten
 
 - I changed the input method for shear quite a bit. It used to be constant
   regardless of zooming, so it was quite limiting in the amount of shear you
   could do. However, I'm not sure if the current method is quite well
   adjusted, if you think it works too fast, please drop me a line.
   It's basicly the same method as Shrink-Fatten / Push-Pull except on an
   horizontal basis. (since shear is an horizontal motion and the two others
   are more like pulling towards/pushing away from you in regards to the center)
 - Factored out the input methods in preparation for later code <evil>.

merge tools

Log:

 [Two Sections here; First is the log that *should* have been included
 to my previous commit (whoops). The second part covers the changes I
 have made to the code since then (all related to merge tools code).]
 
 # Part One: Complete Log for Commit from 2/13/06
 
 -> Upgraded merge tools.
 
 The new merge tools add several options to blenders Merge submenu,
 accessed via the WKEY whilst in Editmode for meshes. The new options
 depend on current mode:
 
 - Vertex mode: "At First" and "At Last"
 
 When choosing "At First" or "At last" it will merge all selected
 vertices at the first or last selected vertex.
 
 (Note: Blender now keeps track of the last and first verts selected in
 editMode (G.editMesh->lastvert and G.editMesh->firstvert
 pointers. This meant additions were made to the undomesh code in
 editmesh.c as well).
 
 - Edge mode: "Collapse Edges"
 
 When choosing this option, Blender examines the current set of
 selected edges and groups them according whether or not they are
 topologically connected. It then goes through each group and merges
 them one by one to a single point.
 
 - Face Mode: "Collapse Faces"
 
 Works the same as "Collapse Edges", only works on groups of
 topologically connected faces.
 
 -> Inclusive selection mode conversion.
 
 This feature extends the ability of blenders selection mode
 conversions. Currently when you change selection modes from a "lower
 order" mode to a "higher order" one (vertex->edge, vertex->face or
 edge->face) blender only selects elements in the new mode whose
 elements were completely selected in the previous mode.
 
 This patch does not change blenders default behavior but offers
 implicit selection mode conversion as an alternative. To access it,
 hold either the left or right CTRL keys and click on a selection mode
 in the view 3d selection mode header buttons. This can be accessed via
 the CTRL-TAB selection mode switching as well, simply hold CTRL while
 clicking the mode you want or entering its number on the keypad.
 
 In some programs, such as Wings and Mirai, it has been demonstrated
 that it can also be very useful to exploit selection mode switching to
 implicitly select previously unselected elements as well. For instance
 switching selection mode from vertex to edges will select all edges
 currently associated with the currently selected vertices. The same
 behavior is applied to switching between vertex->face and
 edge->face. By exploiting this sort of selection conversion complex
 selection sets can be built quicker.
 
 Furthermore I modified blenders UndoMesh code to make selection mode
 switching "undo coherent". Aside from its relevance to inclusive
 selection mode conversion, this really counts as a "bug" in my
 mind. Previously selection mode switch could cause the selection state
 of the mesh to be invalid when certain modeling operations were
 undone. An example of this would be "edge subdivide-> switch to face
 mode-> undo"; you end up with edges selected while still in face mode!
 
 # Part Two: Log for this Commit
 
 -> Code Cleanup
 
 As per Ton's request I reformatted all my code, changed variable names
 and eliminated my use of "LinkNode" structs and replaced them with
 "ListBase" instead. There should be no warnings while compiling now
 either.
 
 -> Remove doubles bug
 
 Fixed small problem in removedoublesflag() in editmesh_tools.c that
 caused editface structs to get their UV's scrambled. Vertex colors
 might not be safe though? Need to investigate later.
 
 -> Small bug in in the the code for merge last/first
 
 It could cause a crash when exiting editmode, switching meshes, then
 entering editmode again. "lastvert" and "firstvert" pointers are now
 set to NULL whenever exiting editmode now (see load_editmesh() in
 editmesh.c). I will find a better solution to this *soon*...
 
 -> All merge tools now UV aware (optional)
 
 The default behavior is to leave UVs alone, but if you hold CTRL while
 clicking on the menu entry, UV's are merged. This works fine in most
 situations, although some investigation into how to best handle
 merging of UVs at the border of UV islands needs to be done.
 
 This last item brings up a point about the current state of the
 interface: several functions accessed through the WKEY menu now use
 the CTRL modifier to change how they behave (This convention has been
 in place for a while, see subdivide for example). Unfortunately there
 is no way to communicate the way modifier keys change the behavior of
 certain functions to the user. This makes such options invisible for
 all intents and purposes...


Vertex Group/Weight support in removedoublesflag()

 Remove doubles didn't previously deal with vertex groups/weights properly. Now it averages the weights of vertices when they are doubles and share the same group. Verts that get merged but don't belong to all the same groups are dealt with as well.


Array modifier patch by Ben Batt! (#3788)

 This modifier allows to make arrays of meshes, with multiple offset types:
 - constant offset
 - offset relative to object width
 - offset with scale and rotation based on another object
 
 The number of duplicates can be computed based on a fixed count, fixed length
 or length of a curve. Duplicate vertices can be automatically merged.
 
 Nice docs and example files available in the wiki:
 http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier


copy curve modifiers

 CTRL+C Copy Menu now includes modifiers for Curve objects.


around individual center

 Quick feature: "Around Individual Centers" now works in editmode mesh, but
 only in Face-Select mode. It then uses for rotate and scaling the face
 center itself as reference.
 
 Code uses a loop-in-loop to find the face that belongs to the vertex...
 means it will be slow with operations on 10k or more faces. Acceptable
 for now, will make it nicer later. :)


mesh tools

 Added select group edges (Length/Direction/FaceUsers)
 Added VecAngle2 - needed for grouping by normal and planer faces.
 Made select face & edge group ignore hidden faces.
 fixed a bug where hiding faces didnt update G.tot*sel

Stored Selections

 Previously Blender did not store the order in which vertices, edges
 or faces were selected in edit mode. In many cases it is useful to
 have this data, however it is not desirable to store every selection
 made. Now blender stores selections in the order in which they were
 made in a linked list called 'selected' in  EditMesh. EditSelection structs
 are created whenever 'EM_store_selection' from  editmesh_lib.c is called
 (currently only on user selection with mouse). There are several cases
 in which they might be deallocated by calling the 'EM_remove_selection'
 function however:
 
 -When the user deselects something with the mouse ('mouse_mesh' in
  editmesh_mods.c)
 
 -When switching selection modes stored selections that are not relevant
 to the new mode are removed by the 'EM_strip_selections' function
 (multi-select mode is supported)
 
 -When the vertex, edge or face pointed to by a certain stored selection is
 deallocated
 
 -When EM_clear_flag_all is called and where the flag passed to the function
 contains the 'SELECT' bitmask.
 
 -When leaving edit mode (making stored selection data persistent across
 editing sessions will require modifications to mesh DNA later)
 
 Todo:
 
 There are a few cases still where you can temporarily end up with a stored
 selection that points to an element that is no longer selected
 (edge loop de-select can cause this for instance). The solution to this is to
 add a call to EM_remove_selection from 'EM_select_edge' and 'EM_select_face' when
 these functions are being used to deselect elements. For the sake of completeness
 however this will also require that an 'EM_select_vert' function be coded and
 called at all appropriate parts of the editmesh code. I will look into this
 later in the week.
 
 For now there are two tools that already take advantage of the stored selections.
 The first one is 'merge at first or last vertex' in the merge menu (the 'firstvert' and
 'lastvert' pointers are gone from EditMesh). The second tool is path select, which builds
 a path between the last vert selected and the second to last vert selected. This allows you
 to build complex path selections in a short amount of time like this
 'select A, select B, path select. select C, path select. select D...'

transforms

 Log:
 Added rotate about centre for active Vert/Edge/Face in mesh editmode. also works for getting the V/E/F normal. Means we can now rotate about the last selected edge.
 

Transform Display

 Based on a patch by Matthias Derer, this adds the distance moved to a translation (grab) transform
 (both 3D and 2D, although the 2D transform displays the normalised distance only).


transforms

Seperated out some functionality into 3 new functions.
 EM_editselection_center
 EM_editselection_normal
 EM_editselection_plane
 These functions are used by the manipulator to get data from an editselection. regardless of weather its a face/edge/vert.



mesh

 Make editmesh edge length and face area drawing's precission proportonate to the gridsize.
 Needed when working with small models.
 Added "Similar Edge Face Angles" to "Select Edge Groups"
 This means you can select edges based on the angles of edges in the existing selection.
 Only works for edges with 2 face users at the moment.

stored selection

Stored Selections in Mesh DNA

 Stored selections now get saved to mesh library blocks as direct data.
 The idea that stored selections are 'erased' when leaving editmode and
 switching objects is pretty mysterious for the user. Note that currently
 the mselect array in a mesh is not written to file.  Not sure whether
 to change this or not.

Tools

 Patch #4119, submitted by Lukas Steiblys (imbusy1).  Mesh objects (created
 through the toolbox) which take user input such as number of verts, are not
 created if the user cancels input.  Thanks for the patch!

mesh tools

-> New menu and toolbox entries

 Added the following to the 'select' menu of 3d header and toolbox while in mesh editmode: '
 
 -Path Select
 -Edge Loop Multi-Select
 -Edge Ring Multi-Select
 -Loop to Region
 -Region to Loop
 
 Also added Collapse Faces and Collapse Edges to menu and toolbox as well as made them available in selection modes other than face exclusive and edge exclusive.