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:
parent
9b89de2571
commit
b73dc36859
Notes:
blender-bot
2023-02-13 18:12:44 +01:00
Referenced by issue #90786, Geometry nodes: editor do not refresh immediately if GN modifier clicked out of icon. Referenced by issue #90423, Cycles - Render Pass contains black pixels with no values Referenced by issue #89708, Geometry Node "Attribute Transfer" UV Mapping problem
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue