[Bf-blender-cvs] [03bd024c077] master: GPencil: Uses same random seed for render in Noise modifier

Antonioya noreply at git.blender.org
Sat Mar 30 17:08:00 CET 2019


Commit: 03bd024c077d549cdef1ac686a557c742545cba8
Author: Antonioya
Date:   Sat Mar 30 17:06:49 2019 +0100
Branches: master
https://developer.blender.org/rB03bd024c077d549cdef1ac686a557c742545cba8

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.

===================================================================

M	source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c

===================================================================

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(



More information about the Bf-blender-cvs mailing list