GPencil: Add weight factor to Offset randomize

Now, The weight is used in the randomize parameters of the offset modifier. 

This is useful to generate effects like explosions.

Related to the new Vertex Weight modifiers.
This commit is contained in:
Antonio Vazquez
2021-07-03 17:33:13 +02:00
parent 9b89de2571
commit b73dc36859

View File

@@ -129,14 +129,6 @@ static void deformStroke(GpencilModifierData *md,
}
}
}
/* Calculate Random matrix. */
float mat_rnd[4][4];
float rnd_loc[3], rnd_rot[3];
float rnd_scale[3] = {1.0f, 1.0f, 1.0f};
mul_v3_v3v3(rnd_loc, mmd->rnd_offset, rand[0]);
mul_v3_v3v3(rnd_rot, mmd->rnd_rot, rand[1]);
madd_v3_v3v3(rnd_scale, mmd->rnd_scale, rand[2]);
loc_eul_size_to_mat4(mat_rnd, rnd_loc, rnd_rot, rnd_scale);
bGPdata *gpd = ob->data;
@@ -150,6 +142,21 @@ static void deformStroke(GpencilModifierData *md,
if (weight < 0.0f) {
continue;
}
/* Calculate Random matrix. */
float mat_rnd[4][4];
float rnd_loc[3], rnd_rot[3], rnd_scale_weight[3];
float rnd_scale[3] = {1.0f, 1.0f, 1.0f};
mul_v3_v3fl(rnd_loc, rand[0], weight);
mul_v3_v3fl(rnd_rot, rand[1], weight);
mul_v3_v3fl(rnd_scale_weight, rand[2], weight);
mul_v3_v3v3(rnd_loc, mmd->rnd_offset, rnd_loc);
mul_v3_v3v3(rnd_rot, mmd->rnd_rot, rnd_rot);
madd_v3_v3v3(rnd_scale, mmd->rnd_scale, rnd_scale_weight);
loc_eul_size_to_mat4(mat_rnd, rnd_loc, rnd_rot, rnd_scale);
/* Apply randomness matrix. */
mul_m4_v3(mat_rnd, &pt->x);