From 03bd024c077d549cdef1ac686a557c742545cba8 Mon Sep 17 00:00:00 2001 From: Antonioya Date: Sat, 30 Mar 2019 17:06:49 +0100 Subject: GPencil: Uses same random seed for render in Noise modifier As the random seed was calculated in the copy data, the render could be a little different. Now, the data is saved in the original data. --- source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c index 9bfbe20343e..97ac6fa56cd 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c @@ -101,11 +101,16 @@ static void deformStroke( const int def_nr = defgroup_name_index(ob, mmd->vgname); const float unit_v3[3] = { 1.0f, 1.0f, 1.0f }; - /* Random generator, only init once. */ - if (mmd->rng == NULL) { + Object *object_eval = DEG_get_evaluated_object(depsgraph, ob); + GpencilModifierData *md_eval = BKE_gpencil_modifiers_findByName(object_eval, md->name); + NoiseGpencilModifierData *mmd_eval = (NoiseGpencilModifierData *)md_eval; + + /* Random generator, only init once. (it uses eval to get same value in render) */ + if (mmd_eval->rng == NULL) { uint rng_seed = (uint)(PIL_check_seconds_timer_i() & UINT_MAX); rng_seed ^= POINTER_AS_UINT(mmd); - mmd->rng = BLI_rng_new(rng_seed); + mmd_eval->rng = BLI_rng_new(rng_seed); + mmd->rng = mmd_eval->rng; } if (!is_stroke_affected_by_modifier( -- cgit v1.2.3