[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51794] trunk/blender/source/blender/ render/intern/source/strand.c: Fix blender internal strand render issue with deep shadow buffers, and AA samples

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Oct 31 18:32:18 CET 2012


Revision: 51794
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51794
Author:   blendix
Date:     2012-10-31 17:32:18 +0000 (Wed, 31 Oct 2012)
Log Message:
-----------
Fix blender internal strand render issue with deep shadow buffers, and AA samples
smaller than the number of shadow sample buffers. There was not enough shadow in
such cases, as some of the sample buffers were not filled in.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/strand.c

Modified: trunk/blender/source/blender/render/intern/source/strand.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/strand.c	2012-10-31 17:28:21 UTC (rev 51793)
+++ trunk/blender/source/blender/render/intern/source/strand.c	2012-10-31 17:32:18 UTC (rev 51794)
@@ -449,6 +449,7 @@
 	int sample;
 	int shadow;
 	float (*jit)[2];
+	int samples;
 
 	StrandSegment *segment;
 	float t[3], s[3];
@@ -669,12 +670,8 @@
 		float dt= p2->t - p1->t;
 		int a;
 
-		if (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);
+		for (a=0; a<spart->samples; a++)
+			do_scanconvert_strand(re, spart, zspan, t, dt, p1->zco2, p1->zco1, p2->zco1, p2->zco2, a);
 	}
 	else {
 		float hoco1[4], hoco2[4];
@@ -786,7 +783,7 @@
 }
 
 /* render call to fill in strands */
-int zbuffer_strands_abuf(Render *re, RenderPart *pa, APixstrand *apixbuf, ListBase *apsmbase, unsigned int lay, int UNUSED(negzmask), float winmat[][4], int winx, int winy, int UNUSED(sample), float (*jit)[2], float clipcrop, int shadow, StrandShadeCache *cache)
+int zbuffer_strands_abuf(Render *re, RenderPart *pa, APixstrand *apixbuf, ListBase *apsmbase, unsigned int lay, int UNUSED(negzmask), float winmat[][4], int winx, int winy, int samples, float (*jit)[2], float clipcrop, int shadow, StrandShadeCache *cache)
 {
 	ObjectRen *obr;
 	ObjectInstanceRen *obi;
@@ -820,6 +817,7 @@
 	spart.cache= cache;
 	spart.shadow= shadow;
 	spart.jit= jit;
+	spart.samples= samples;
 
 	zbuf_alloc_span(&zspan, pa->rectx, pa->recty, clipcrop);
 




More information about the Bf-blender-cvs mailing list