[Bf-blender-cvs] [e73f103] master: Fix T44598: blender internal not giving same result on repeated texture bakes.

Brecht Van Lommel noreply at git.blender.org
Wed May 6 23:08:09 CEST 2015


Commit: e73f1035d7e544f83cadceb5a44acfa1e9fb1921
Author: Brecht Van Lommel
Date:   Wed May 6 22:58:22 2015 +0200
Branches: master
https://developer.blender.org/rBe73f1035d7e544f83cadceb5a44acfa1e9fb1921

Fix T44598: blender internal not giving same result on repeated texture bakes.

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

M	source/blender/render/intern/source/bake.c

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

diff --git a/source/blender/render/intern/source/bake.c b/source/blender/render/intern/source/bake.c
index b602753..0210bec 100644
--- a/source/blender/render/intern/source/bake.c
+++ b/source/blender/render/intern/source/bake.c
@@ -34,6 +34,7 @@
 #include "MEM_guardedalloc.h"
 
 #include "BLI_math.h"
+#include "BLI_rand.h"
 #include "BLI_threads.h"
 #include "BLI_utildefines.h"
 
@@ -75,6 +76,8 @@ extern struct Render R;
 
 
 typedef struct BakeShade {
+	int thread;
+
 	ShadeSample ssamp;
 	ObjectInstanceRen *obi;
 	VlakRen *vlr;
@@ -737,6 +740,9 @@ static void bake_single_vertex(BakeShade *bs, VertRen *vert, float u, float v)
 	MLoopCol *basevcol;
 	MLoop *mloop;
 
+	/* per vertex fixed seed */
+	BLI_thread_srandom(bs->thread, vert->index);
+
 	origindex = RE_vertren_get_origindex(bs->obi->obr, vert, 0);
 	if (!origindex || *origindex == ORIGINDEX_NONE)
 		return;
@@ -811,6 +817,9 @@ static void shade_tface(BakeShade *bs)
 	Image *ima = tface->tpage;
 	float vec[4][2];
 	int a, i1, i2, i3;
+
+	/* per face fixed seed */
+	BLI_thread_srandom(bs->thread, vlr->index);
 	
 	/* check valid zspan */
 	if (ima != bs->ima) {
@@ -1037,6 +1046,8 @@ int RE_bake_shade_all_selected(Render *re, int type, Object *actob, short *do_up
 
 	/* get the threads running */
 	for (a = 0; a < re->r.threads; a++) {
+		handles[a].thread = a;
+
 		/* set defaults in handles */
 		handles[a].ssamp.shi[0].lay = re->lay;




More information about the Bf-blender-cvs mailing list