Blender Git Commits

Blender Git "master" branch commits.

Page: 3625 / 5574

May 10, 2012, 20:36 (GMT)
Add keymap and menu entries for masking.

* Add CTRL+IKEY to invert the mask.

* Add ALT+MKEY to clear the mask.

* Change the 'Hide' menu in sculpt mode to 'Hide/Mask', adds entires
for clearing, filling, and inverting the mask, as well as hiding
masked regions.
May 10, 2012, 20:36 (GMT)
Add support for hiding masked regions.

Add a new mode, PARTIALVIS_MASKED, to the PAINT_OT_hide_show operator.
May 10, 2012, 20:35 (GMT)
Add a paint mask operator to clear, fill, or invert the mask.
May 10, 2012, 20:35 (GMT)
Update the keymap for the mask brush.

* Add MKEY as a toggle for the mask brush. We could use ALT similar to
SHIFT toggling the smooth brush, but it would conflict with MMB
emulation (not to mention many window managers.)

* When the mask brush is active, SHIFT toggles it into smooth mode.
May 10, 2012, 20:35 (GMT)
Add mask brush for sculpt mode.

The mask brush currently has two modes, 'draw' and 'smooth'.
May 10, 2012, 20:35 (GMT)
Add new mask-brush icon from Julio Iglesias.
May 10, 2012, 20:34 (GMT)
Use paint mask when calculating sculpt strength.
May 10, 2012, 20:34 (GMT)
Add undo/redo support for paint masks.
May 10, 2012, 20:34 (GMT)
Ensure mask layers are always present in sculpt mode.
May 10, 2012, 20:34 (GMT)
Copy GridPaintMask to vertex paint mask when applying multires.

Adds new subsurf_copy_grid_paint_mask() function similar to
subsurf_copy_grid_hidden().
May 10, 2012, 20:34 (GMT)
Add mask support to CCGSubSurf and multires.

* Add new CCG function ccgSubSurf_setAllocMask(). Similar to to
ccgSubSurf_setCalcVertexNormals(), it sets whether the CCG elements
have a mask layer and what that layer's offset is. Unlike normals
however, it doesn't change any behavior during CCG calculation; it's
there only to give CCGKey information on the mask.

* Add a new flag to _getSubSurf(), CCG_ALLOC_MASK. If set, space for
an extra layer is allocated, but the number of CCG layers is not set
to include it. This is done because GridPaintMasks are absolute,
rather than being relative to the subdivided output (as MDisp
displacements are), so we skip subdividing paint masks here.

* Add a new flag to subsurf_make_derived_from_derived(),
SUBSURF_ALLOC_PAINT_MASK. This controls whether CCG_ALLOC_MASK is
set for _getSubSurf(). Related, masks are never loaded in during
ss_sync_from_derivedmesh(). After subdivision is finished, if the
alloc mask flag is set, the number of CCG layers is increase to 4
with ccgSubSurf_setNumLayers().

* Add a new flag to multires_make_from_derived(),
MULTIRES_ALLOC_PAINT_MASK. Not all multires functions need paint
mask data (e.g. multiresModifier_base_apply.) This flag is always
set in MOD_multires.c so that subdividing a mesh with a mask updates
properly even when not in sculpt mode.

* Update multiresModifier_disp_run() to apply, calculate, and add mask
elements. It's almost the same as the existing operations with xyz
coordinates, but treats masks as absolute rather than displacements
relative to subdivided values.

* Update multires_customdata_delete to free CD_GRID_PAINT_MASK in
addition to CD_MDISPS.

* Update multires_del_higher() to call the new function
multires_grid_paint_mask_downsample(), which allocates a
lower-resolution paint mask grid and copies values over from the
high-resolution grid.
May 10, 2012, 20:33 (GMT)
Add GridPaintMask accessor to paint.c.
May 10, 2012, 20:33 (GMT)
Add paint mask access to the PBVH vertex iterator.
May 10, 2012, 20:33 (GMT)
Add access to mesh vertex customdata to the PBVH.
May 10, 2012, 20:33 (GMT)
Add DNA and customdata entries for paint masks.

CD_PAINT_MASK is a layer of per-vertex floats for non-multires
meshes. Multires meshes use CD_GRID_PAINT_MASK, which is a layer of
per-loop GridPaintMask structures. GridPaintMask is similar to MDisp,
but contains an array of scalar floats.

Note: the GridPaintMask could be folded into MDisp, but this way
should be easier to add mask layers in the future (if we do fold
GridPaintMask into MDisp, the mask array should probably be an array
of arrays with a 'totmask' field so that mask layers can be easily
supported.)

Includes blenload read/write support for CD_PAINT_MASK and
CD_GRID_PAINT_MASK.
May 10, 2012, 20:33 (GMT)
Replace hardcoded DMGridData structure with CCGElem/CCGKey.

* Changes to DerivedMesh interface: DMGridData has been removed,
getGridData() now returns an array of CCGElem pointers. Also added
getGridKey() to initialize a CCGKey (implemented only by
CCGDerivedMesh.)

* PBVH: added BLI_pbvh_get_grid_key().

* A lot of code is affected, but mainly is just replacing
DMGridData.co, DMGridData.no, and sizeof(DMGridData) with the
CCG_*_elem functions, removing the reliance on grid elements of
exactly six floats.
May 10, 2012, 20:32 (GMT)
Add CCGKey/CCGElem for accessing CCGSubSurf elements.

CCGKey caches information about the CCGSubSurf element layout. This
data, along with the CCG_* inline functions, allows access to
CCGSubSurf elements with an arbitrary number of layers (as opposed to
the hardcoded DMGridData structure which assumes xyz coordinates
followed by three normal components.)

The CCGElem structure is declared but not defined anywhere, just used
as a convenient type.
May 10, 2012, 20:32 (GMT)
Modify CCGSubsurf to subdivide an arbitrary number of (float) layers.

The layout of vert data in CCGSubSurf is almost the same; previously
it was three floats (for xyz coordinate) optionally followed by three
floats for the normal. The only change is that the first three floats
can now be any number of floats.

* _getSubSurf takes a numLayers parameter to set the number of layers,
stored in CCGMeshIFC.numLayers.

* All calls to _getSubSurf currently have numLayers set to 3, except
for UV subsurf, where it is reduced to 2 (with a corresponding
change when reading the results out to use float (*)[2] rather than
float (*)[3].)

* The various VertData* macros in CCGSubSurf.c are now functions that
take a CCGSubSurf pointer, which provides access to CCGMeshIFC,
which has numLayers.

* Add ccgSubSurf_setNumLayers() to the API. Only changes the number of
layers that get subdivided, doesn't change the amount of memory
allocated. So if space for N layers is allocated, it's safe to set
the number of layers to less than N, but not more.

* The rest of the changes are just adding the 'ss' parameter.
May 10, 2012, 20:32 (GMT)
Add new options to PAINT_OT_brush_select, toggle and create_missing.

The toggle option, if enabled, will toggle back and forth between two
brushes. (The first brush of the desired tool type will be toggled to,
running the toggle again switches back to the previously selected
brush.)

If no brush of the desired type is found, and the create_missing
option is enabled, a new brush of that type will be created and set.
May 10, 2012, 20:32 (GMT)
Add an RNA access function to get an enum item name from its value.

New function is RNA_enum_name_from_value.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021