Merge branch 'blender-v2.83-release'
This commit is contained in:
@@ -3151,7 +3151,6 @@ static void gp_brush_angle_segment(tGPsdata *p, tGPspoint *pt_prev, tGPspoint *p
|
|||||||
|
|
||||||
float mvec[2];
|
float mvec[2];
|
||||||
float fac;
|
float fac;
|
||||||
float mpressure;
|
|
||||||
|
|
||||||
/* angle vector of the brush with full thickness */
|
/* angle vector of the brush with full thickness */
|
||||||
float v0[2] = {cos(angle), sin(angle)};
|
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[0] = pt->x - pt_prev->x;
|
||||||
mvec[1] = pt->y - pt_prev->y;
|
mvec[1] = pt->y - pt_prev->y;
|
||||||
normalize_v2(mvec);
|
normalize_v2(mvec);
|
||||||
|
|
||||||
fac = 1.0f - fabs(dot_v2v2(v0, mvec)); /* 0.0 to 1.0 */
|
fac = 1.0f - fabs(dot_v2v2(v0, mvec)); /* 0.0 to 1.0 */
|
||||||
/* interpolate with previous point for smoother transitions */
|
/* interpolate with previous point for smoother transitions */
|
||||||
mpressure = interpf(pt->pressure - (sen * fac), pt_prev->pressure, 0.3f);
|
pt->pressure = interpf(pt->pressure - (sen * fac), pt_prev->pressure, 0.5f);
|
||||||
pt->pressure = mpressure;
|
|
||||||
|
|
||||||
CLAMP(pt->pressure, pt_prev->pressure * 0.5f, 1.0f);
|
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[0] = midpoint[0] - (cp1[0] - midpoint[0]);
|
||||||
corner[1] = midpoint[1] - (cp1[1] - midpoint[1]);
|
corner[1] = midpoint[1] - (cp1[1] - midpoint[1]);
|
||||||
|
|
||||||
|
tGPspoint *pt_step = pt_prev;
|
||||||
for (int i = 0; i < segments; i++) {
|
for (int i = 0; i < segments; i++) {
|
||||||
pt = &points[idx_prev + i - 1];
|
pt = &points[idx_prev + i - 1];
|
||||||
pt->x = corner[0] + (end[0] - corner[0]) * sinf(a) + (start[0] - corner[0]) * cosf(a);
|
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->pressure = pt_prev->pressure;
|
||||||
pt->strength = pt_prev->strength;
|
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. */
|
/* Apply randomness to pressure. */
|
||||||
if (brush_settings->draw_random_press > 0.0f) {
|
if (brush_settings->draw_random_press > 0.0f) {
|
||||||
float rand = BLI_rng_get_float(p->rng) * 2.0f - 1.0f;
|
float rand = BLI_rng_get_float(p->rng) * 2.0f - 1.0f;
|
||||||
|
Reference in New Issue
Block a user