This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/makesdna/DNA_gpencil_modifier_defaults.h
YimingWu f8f7c0ca6d GPencil: Fading based on distance to reference object in Opacity and Thickness modifiers
This patch allows you to dynamically control stroke's opacity and thickness using an object for distance reference in the modifier. Fading range is adjustable, and it is compatible with current curve/vertex group selection.

Reviewed By: #grease_pencil, antoniov, mendio

Maniphest Tasks: T82177, T80194

Differential Revision: https://developer.blender.org/D9091
2021-04-28 16:53:19 +02:00

303 lines
7.1 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
/* Note that some struct members for color-mapping and color-bands are not initialized here. */
/* Struct members on own line. */
/* clang-format off */
#define _DNA_DEFAULT_ArmatureGpencilModifierData \
{ \
.deformflag = ARM_DEF_VGROUP, \
.multi = 0, \
.object = NULL, \
.vert_coords_prev = NULL, \
.vgname = "", \
}
#define _DNA_DEFAULT_ArrayGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.count = 2, \
.flag = GP_ARRAY_USE_RELATIVE, \
.offset = {0.0f, 0.0f, 0.0f}, \
.shift = {1.0f, 0.0f, 0.0f}, \
.rnd_offset = {0.0f, 0.0f, 0.0f}, \
.rnd_rot = {0.0f, 0.0f, 0.0f}, \
.rnd_scale = {0.0f, 0.0f, 0.0f}, \
.seed = 1, \
.pass_index = 0, \
.layername = "", \
.mat_rpl = 0, \
.layer_pass = 0, \
}
/* Deliberately set this range to the half the default frame-range
* to have an immediate effect to suggest use-cases. */
#define _DNA_DEFAULT_BuildGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.layer_pass = 0, \
.start_frame = 1, \
.end_frame = 125, \
.start_delay = 0.0f, \
.length = 100.0f, \
.flag = 0, \
.mode = 0, \
.transition = 0, \
.time_alignment = 0, \
.percentage_fac = 0.0f, \
}
#define _DNA_DEFAULT_ColorGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.hsv = {0.5f, 1.0f, 1.0f}, \
.modify_color = GP_MODIFY_COLOR_BOTH, \
.layer_pass = 0, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_HookGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.subtarget = "", \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.layer_pass = 0, \
.flag = 0, \
.falloff_type = eGPHook_Falloff_Smooth, \
.parentinv = _DNA_DEFAULT_UNIT_M4, \
.cent = {0.0f, 0.0f, 0.0f}, \
.falloff = 0.0f, \
.force = 0.5f, \
.curfalloff = NULL, \
}
#define _DNA_DEFAULT_LatticeGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.strength = 1.0f, \
.layer_pass = 0, \
.cache_data = NULL, \
}
#define _DNA_DEFAULT_MirrorGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = GP_MIRROR_AXIS_X, \
.layer_pass = 0, \
}
#define _DNA_DEFAULT_MultiplyGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.layer_pass = 0, \
.flags = 0, \
.duplications = 3, \
.distance = 0.1f, \
.offset = 0.0f, \
.fading_center = 0.5f, \
.fading_thickness = 0.5f, \
.fading_opacity = 0.5f, \
}
#define _DNA_DEFAULT_NoiseGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = GP_NOISE_FULL_STROKE | GP_NOISE_USE_RANDOM, \
.factor = 0.5f, \
.factor_strength = 0.0f, \
.factor_thickness = 0.0f, \
.factor_uvs = 0.0f, \
.noise_scale = 0.0f, \
.noise_offset = 0.0f, \
.step = 4, \
.layer_pass = 0, \
.seed = 1, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_OffsetGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.loc = {0.0f, 0.0f, 0.0f}, \
.rot = {0.0f, 0.0f, 0.0f}, \
.scale = {0.0f, 0.0f, 0.0f}, \
.layer_pass = 0, \
}
#define _DNA_DEFAULT_OpacityGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.factor = 1.0f, \
.modify_color = GP_MODIFY_COLOR_BOTH, \
.layer_pass = 0, \
.hardeness = 1.0f, \
.curve_intensity = NULL, \
.fading_end = 10.0f, \
.fading_end_factor = 0.2f, \
}
#define _DNA_DEFAULT_SimplifyGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.factor = 0.0f, \
.mode = 0, \
.step = 1, \
.layer_pass = 0, \
.length = 0.1f, \
.distance = 0.1f, \
}
#define _DNA_DEFAULT_SmoothGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = GP_SMOOTH_MOD_LOCATION, \
.factor = 0.5f, \
.step = 1, \
.layer_pass = 0, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_SubdivGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.level = 1, \
.layer_pass = 0, \
.type = 0, \
}
#define _DNA_DEFAULT_TextureGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.uv_offset = 0.0f, \
.uv_scale = 1.0f, \
.fill_rotation = 0.0f, \
.fill_offset = {0.0f, 0.0f}, \
.fill_scale = 1.0f, \
.layer_pass = 0, \
.fit_method = GP_TEX_CONSTANT_LENGTH, \
.mode = 0, \
}
#define _DNA_DEFAULT_ThickGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.thickness_fac = 1.0f, \
.thickness = 30, \
.layer_pass = 0, \
.fading_end = 10.0f, \
.fading_end_factor = 0.2f, \
}
#define _DNA_DEFAULT_TimeGpencilModifierData \
{ \
.layername = "", \
.layer_pass = 0, \
.flag = GP_TIME_KEEP_LOOP, \
.offset = 1, \
.frame_scale = 1.0f, \
.mode = 0, \
.sfra = 1, \
.efra = 250, \
}
#define _DNA_DEFAULT_TintGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.layer_pass = 0, \
.flag = 0, \
.mode = GPPAINT_MODE_BOTH, \
.factor = 0.5f, \
.radius = 1.0f, \
.rgb = {1.0f, 1.0f, 1.0f}, \
.type = 0, \
.curve_intensity = NULL, \
.colorband = NULL, \
}
#define _DNA_DEFAULT_LineartGpencilModifierData \
{ \
.edge_types = LRT_EDGE_FLAG_ALL_TYPE, \
.thickness = 25, \
.opacity = 1.0f, \
.flags = LRT_GPENCIL_MATCH_OUTPUT_VGROUP, \
.crease_threshold = DEG2RAD(140.0f), \
.calculation_flags = LRT_ALLOW_DUPLI_OBJECTS | LRT_ALLOW_CLIPPING_BOUNDARIES, \
.angle_splitting_threshold = DEG2RAD(60.0f), \
.chaining_image_threshold = 0.001f, \
}
/* clang-format off */