[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13718] trunk/blender/source/blender/ render/intern/source:

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Feb 16 19:49:55 CET 2008


Revision: 13718
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13718
Author:   blendix
Date:     2008-02-16 19:49:54 +0100 (Sat, 16 Feb 2008)

Log Message:
-----------

Fix for bug #8285 and #8286: halo crashes with environment maps and
render instancing.
Fix for vector blur alpha blending bug due to my recent bugfix, as
reported on bf-committers.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/envmap.c
    trunk/blender/source/blender/render/intern/source/zbuf.c

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2008-02-16 18:00:22 UTC (rev 13717)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2008-02-16 18:49:54 UTC (rev 13718)
@@ -4260,6 +4260,25 @@
 
 static int allow_render_dupli_instance(Render *re, DupliObject *dob, Object *obd)
 {
+	ParticleSystem *psys;
+	Material ***material;
+	short a, *totmaterial;
+
+	/* don't allow objects with halos */
+	totmaterial= give_totcolp(obd);
+	material= give_matarar(obd);
+
+	if(totmaterial && material) {
+		for(a= 0; a<*totmaterial; a++)
+			if((*material)[a]->mode & MA_HALO)
+				return 0;
+	}
+
+	for(psys=obd->particlesystem.first; psys; psys=psys->next)
+		if(!ELEM5(psys->part->draw_as, PART_DRAW_BB, PART_DRAW_LINE, PART_DRAW_PATH, PART_DRAW_OB, PART_DRAW_GR))
+			return 0;
+
+	/* don't allow lamp, animated duplis, or radio render */
 	return (render_object_type(obd->type) &&
 	        (!(dob->type == OB_DUPLIGROUP) || !dob->animated) &&
 	        !(re->r.mode & R_RADIO));

Modified: trunk/blender/source/blender/render/intern/source/envmap.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/envmap.c	2008-02-16 18:00:22 UTC (rev 13717)
+++ trunk/blender/source/blender/render/intern/source/envmap.c	2008-02-16 18:49:54 UTC (rev 13718)
@@ -150,6 +150,7 @@
 	envre->tothalo= re->tothalo;
 	envre->totstrand= re->totstrand;
 	envre->totlamp= re->totlamp;
+	envre->sortedhalos= re->sortedhalos;
 	envre->lights= re->lights;
 	envre->objecttable= re->objecttable;
 	envre->customdata_names= re->customdata_names;
@@ -170,6 +171,7 @@
 	envre->totstrand= 0;
 	envre->totlamp= 0;
 	envre->totinstance= 0;
+	envre->sortedhalos= NULL;
 	envre->lights.first= envre->lights.last= NULL;
 	envre->objecttable.first= envre->objecttable.last= NULL;
 	envre->customdata_names.first= envre->customdata_names.last= NULL;

Modified: trunk/blender/source/blender/render/intern/source/zbuf.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/zbuf.c	2008-02-16 18:00:22 UTC (rev 13717)
+++ trunk/blender/source/blender/render/intern/source/zbuf.c	2008-02-16 18:49:54 UTC (rev 13718)
@@ -3184,8 +3184,8 @@
 			/* accum */
 			for(dr= rectdraw, dz2=newrect, x= xsize*ysize-1; x>=0; x--, dr++, dz2+=4) {
 				if(dr->colpoin) {
-					float bfac= dr->alpha*blendfac;
-					float mf= 1.0f - bfac*dr->colpoin[3];
+					float bfac= dr->alpha*blendfac*dr->colpoin[3];
+					float mf= 1.0f - bfac;
 					
 					dz2[0]= mf*dz2[0] + bfac*dr->colpoin[0];
 					dz2[1]= mf*dz2[1] + bfac*dr->colpoin[1];





More information about the Bf-blender-cvs mailing list