Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Vazquez <blendergit@gmail.com>2020-05-02 11:48:15 +0300
committerAntonio Vazquez <blendergit@gmail.com>2020-05-02 11:48:15 +0300
commit719cff1414d8d4b96be035e6c33b619acb7dac41 (patch)
tree46e7e46b2fa5c9e5a912961ef7abe4005f0e74cd
parent03b911dd8776ad0ceab8923ebec86d1f0d5296f5 (diff)
parentcfdff4fb6331d1bffdafda645d9fbce4aca04901 (diff)
Merge branch 'blender-v2.83-release'
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 0f7091b8b46..561104b0b98 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -3151,7 +3151,6 @@ static void gp_brush_angle_segment(tGPsdata *p, tGPspoint *pt_prev, tGPspoint *p
float mvec[2];
float fac;
- float mpressure;
/* angle vector of the brush with full thickness */
float v0[2] = {cos(angle), sin(angle)};
@@ -3159,11 +3158,9 @@ static void gp_brush_angle_segment(tGPsdata *p, tGPspoint *pt_prev, tGPspoint *p
mvec[0] = pt->x - pt_prev->x;
mvec[1] = pt->y - pt_prev->y;
normalize_v2(mvec);
-
fac = 1.0f - fabs(dot_v2v2(v0, mvec)); /* 0.0 to 1.0 */
/* interpolate with previous point for smoother transitions */
- mpressure = interpf(pt->pressure - (sen * fac), pt_prev->pressure, 0.3f);
- pt->pressure = mpressure;
+ pt->pressure = interpf(pt->pressure - (sen * fac), pt_prev->pressure, 0.5f);
CLAMP(pt->pressure, pt_prev->pressure * 0.5f, 1.0f);
}
@@ -3241,6 +3238,7 @@ static void gpencil_add_arc_points(tGPsdata *p, float mval[2], int segments)
corner[0] = midpoint[0] - (cp1[0] - midpoint[0]);
corner[1] = midpoint[1] - (cp1[1] - midpoint[1]);
+ tGPspoint *pt_step = pt_prev;
for (int i = 0; i < segments; i++) {
pt = &points[idx_prev + i - 1];
pt->x = corner[0] + (end[0] - corner[0]) * sinf(a) + (start[0] - corner[0]) * cosf(a);
@@ -3250,6 +3248,14 @@ static void gpencil_add_arc_points(tGPsdata *p, float mval[2], int segments)
pt->pressure = pt_prev->pressure;
pt->strength = pt_prev->strength;
+ /* Apply angle of stroke to brush size to interpolated points but slightly attenuated.. */
+ if (brush_settings->draw_angle_factor != 0.0f) {
+ gp_brush_angle_segment(p, pt_step, pt);
+ CLAMP(pt->pressure, pt_prev->pressure * 0.8f, 1.0f);
+ /* Use the previous interpolated point for next segment. */
+ pt_step = pt;
+ }
+
/* Apply randomness to pressure. */
if (brush_settings->draw_random_press > 0.0f) {
float rand = BLI_rng_get_float(p->rng) * 2.0f - 1.0f;