This adds a new property to the sculpt vertex color paint brush to limit the area of the brush that is going to be used to sample the wet paint color. This is exactly the same concept as normal radius and area radius that exist for sculpting brushes for sampling the surface depth and orientation. When working near color hard edges, this allows to prevent the color from the other side of the edge to blend into the wet paint. With 1.0 (the previous default) wet paint radius, as soon as the brush touches one vertex of the other color, the wet paint mix color changes, making it impossible to maintain the border between the two colors. Reviewed By: sergey, dbystedt, JulienKaspar Differential Revision: https://developer.blender.org/D9587
119 lines
3.5 KiB
C++
119 lines
3.5 KiB
C++
/*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
/** \file
|
|
* \ingroup DNA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "DNA_texture_defaults.h"
|
|
|
|
/* Struct members on own line. */
|
|
/* clang-format off */
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/** \name Brush Struct
|
|
* \{ */
|
|
|
|
#define _DNA_DEFAULT_Brush \
|
|
{ \
|
|
.blend = 0, \
|
|
.flag = (BRUSH_ALPHA_PRESSURE | BRUSH_SPACE | BRUSH_SPACE_ATTEN), \
|
|
.sampling_flag = (BRUSH_PAINT_ANTIALIASING), \
|
|
\
|
|
.ob_mode = OB_MODE_ALL_PAINT, \
|
|
\
|
|
/* BRUSH SCULPT TOOL SETTINGS */ \
|
|
.weight = 1.0f, /* weight of brush 0 - 1.0 */ \
|
|
.size = 35, /* radius of the brush in pixels */ \
|
|
.alpha = 1.0f, /* brush strength/intensity probably variable should be renamed? */ \
|
|
.autosmooth_factor = 0.0f, \
|
|
.topology_rake_factor = 0.0f, \
|
|
.crease_pinch_factor = 0.5f, \
|
|
.normal_radius_factor = 0.5f, \
|
|
.wet_paint_radius_factor = 0.5f, \
|
|
.area_radius_factor = 0.5f, \
|
|
.disconnected_distance_max = 0.1f, \
|
|
.sculpt_plane = SCULPT_DISP_DIR_AREA, \
|
|
.cloth_damping = 0.01, \
|
|
.cloth_mass = 1, \
|
|
.cloth_sim_limit = 2.5f, \
|
|
.cloth_sim_falloff = 0.75f, \
|
|
/* How far above or below the plane that is found by averaging the faces. */ \
|
|
.plane_offset = 0.0f, \
|
|
.plane_trim = 0.5f, \
|
|
.clone.alpha = 0.5f, \
|
|
.normal_weight = 0.0f, \
|
|
.fill_threshold = 0.2f, \
|
|
\
|
|
/* BRUSH PAINT TOOL SETTINGS */ \
|
|
/* Default rgb color of the brush when painting - white. */ \
|
|
.rgb = {1.0f, 1.0f, 1.0f}, \
|
|
\
|
|
.secondary_rgb = {0, 0, 0}, \
|
|
\
|
|
/* BRUSH STROKE SETTINGS */ \
|
|
/* How far each brush dot should be spaced as a percentage of brush diameter. */ \
|
|
.spacing = 10, \
|
|
\
|
|
.smooth_stroke_radius = 75, \
|
|
.smooth_stroke_factor = 0.9f, \
|
|
\
|
|
/* Time delay between dots of paint or sculpting when doing airbrush mode. */ \
|
|
.rate = 0.1f, \
|
|
\
|
|
.jitter = 0.0f, \
|
|
\
|
|
/* Dash */ \
|
|
.dash_ratio = 1.0f, \
|
|
.dash_samples = 20, \
|
|
\
|
|
.texture_sample_bias = 0, /* value to added to texture samples */ \
|
|
.texture_overlay_alpha = 33, \
|
|
.mask_overlay_alpha = 33, \
|
|
.cursor_overlay_alpha = 33, \
|
|
.overlay_flags = 0, \
|
|
\
|
|
/* brush appearance */ \
|
|
\
|
|
/* add mode color is light red */ \
|
|
.add_col = {1.0, 0.39, 0.39, 0.9}, \
|
|
\
|
|
/* subtract mode color is light blue */ \
|
|
.sub_col = {0.39, 0.39, 1.0, 0.9}, \
|
|
\
|
|
.stencil_pos = {256, 256}, \
|
|
.stencil_dimension = {256, 256}, \
|
|
\
|
|
/* sculpting defaults to the draw tool for new brushes */ \
|
|
.sculpt_tool = SCULPT_TOOL_DRAW, \
|
|
.pose_smooth_iterations = 4, \
|
|
.pose_ik_segments = 1, \
|
|
.hardness = 0.0f, \
|
|
.automasking_boundary_edges_propagation_steps = 1, \
|
|
\
|
|
/* A kernel radius of 1 has almost no effect (T63233). */ \
|
|
.blur_kernel_radius = 2, \
|
|
\
|
|
.mtex = _DNA_DEFAULT_MTex, \
|
|
.mask_mtex = _DNA_DEFAULT_MTex, \
|
|
}
|
|
|
|
/** \} */
|
|
|
|
/* clang-format on */
|