[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