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;


_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to