[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17614] branches/soc-2007-joeedh/source/ blender/render/intern/source: fix some things related to strands that were broken by the merge.

Joseph Eagar joeedh at gmail.com
Sat Nov 29 12:34:52 CET 2008


Revision: 17614
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17614
Author:   joeedh
Date:     2008-11-29 12:34:51 +0100 (Sat, 29 Nov 2008)

Log Message:
-----------
fix some things related to strands that were broken by the merge.

Modified Paths:
--------------
    branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
    branches/soc-2007-joeedh/source/blender/render/intern/source/strand.c
    branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf_dsm.c

Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c	2008-11-29 11:30:39 UTC (rev 17613)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/dsm.c	2008-11-29 11:34:51 UTC (rev 17614)
@@ -224,13 +224,16 @@
 	Mat3CpyMat4(mat, newview);
 	
 	for (obi=re->instancetable.first; obi; obi=obi->next) {
-		if(obi->flag & R_TRANSFORMED) {
+		if(obi->flag & R_DUPLI_TRANSFORMED) {
 			MTC_Mat4MulMat4(mat4, obi->mat, viewinv);
 			MTC_Mat4MulMat4(obi->mat, mat4, newview);
 
 			MTC_Mat3CpyMat4(mat3, obi->mat);
 			MTC_Mat3Inv(obi->nmat, mat3);
 			Mat3Transp(obi->nmat);
+		} else {
+			if (mode) MTC_Mat4MulMat4(obi->mat, oldview, newview);
+			else MTC_Mat4One(obi->mat);
 		}
 	}
 

Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/strand.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/strand.c	2008-11-29 11:30:39 UTC (rev 17613)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/strand.c	2008-11-29 11:34:51 UTC (rev 17614)
@@ -587,7 +587,7 @@
 	VECCOPY(jco3, co3);
 	VECCOPY(jco4, co4);
 	
-	if (spart->shadow_mode) {
+	if (!spart->shadow_mode) {
 		if(re->osa) {
 			jx= -re->jit[sample][0];
 			jy= -re->jit[sample][1];
@@ -626,6 +626,7 @@
 	zspan_scanconvert_strand(zspan, spart, jco1, jco3, jco4, do_strand_fillac);
 }
 
+/*if spart is defined, then totzspan is actually oversampling sample number.*/
 static void strand_render(Render *re, StrandSegment *sseg, float winmat[][4], StrandPart *spart, ZSpan *zspan, int totzspan, StrandPoint *p1, StrandPoint *p2)
 {
 	if(spart) {
@@ -633,12 +634,12 @@
 		float dt= p2->t - p1->t;
 		int a;
 
-		if(!sseg->shadow_mode && re->osa) {
+		if(!spart->shadow_mode && re->osa) {
 			for(a=0; a<re->osa; a++)
 				do_scanconvert_strand(re, spart, zspan, t, dt, p1->zco2, p1->zco1, p2->zco1, p2->zco2, a);
 		}
 		else
-			do_scanconvert_strand(re, spart, zspan, t, dt, p1->zco2, p1->zco1, p2->zco1, p2->zco2, 0);
+			do_scanconvert_strand(re, spart, zspan, t, dt, p1->zco2, p1->zco1, p2->zco1, p2->zco2, spart->sample);
 	}
 	else {
 		float hoco1[4], hoco2[4];

Modified: branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf_dsm.c
===================================================================
--- branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf_dsm.c	2008-11-29 11:30:39 UTC (rev 17613)
+++ branches/soc-2007-joeedh/source/blender/render/intern/source/zbuf_dsm.c	2008-11-29 11:34:51 UTC (rev 17614)
@@ -440,7 +440,7 @@
 	spart.segment= &sseg;
 	spart.shadow_mode = 1;
 	spart.max_shadowsamples = shb->dsmbuffer->max_depth;
-	spart.zspan = &zspans[0]; //check this after commit
+	spart.zspan = &zspans[0];
 
 	for(zsample=0; zsample<samples; zsample++) {
 		zspan= &zspans[zsample];
@@ -643,10 +643,12 @@
 						for(zsample=0; zsample<samples; zsample++) {
 							zspan= &zspans[zsample];
 							zspan->last_apixbuf = lastbufstrand;
+							spart.zspan = &zspans[zsample];
 							//zspan->apixbuf = APixbuf;
 							//zspan->last_apixbuf = lastbuf;
+							spart.sample = zsample;
+							render_strand_segment(re, winmat, &spart, zspan, 1, &sseg);	
 						}
-						render_strand_segment(re, winmat, &spart, zspans, samples, &sseg);	
 					}
 					strand->buffer->winx = oldwinx;
 					strand->buffer->winy = oldwiny;





More information about the Bf-blender-cvs mailing list