Revision: 35475
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=35475
Author:   blendix
Date:     2011-03-11 21:37:17 +0000 (Fri, 11 Mar 2011)
Log Message:
-----------
Fix #25654: strand render with instanced objects was not working right,
some coordinates didn't have the instance matrix applied, while others had
it applied twice.

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  2011-03-11 
17:59:40 UTC (rev 35474)
+++ trunk/blender/source/blender/render/intern/source/strand.c  2011-03-11 
21:37:17 UTC (rev 35475)
@@ -666,8 +666,9 @@
                obi= sseg->obi - re->objectinstance;
                index= sseg->strand->index;
 
-                 projectvert(p1->co, winmat, hoco1);
-                 projectvert(p2->co, winmat, hoco2);
+               projectvert(p1->co, winmat, hoco1);
+               projectvert(p2->co, winmat, hoco2);
+
   
                for(a=0; a<totzspan; a++) {
 #if 0
@@ -855,7 +856,7 @@
                else if(!shadow && (ma->mode & MA_ONLYCAST))
                        continue;
 
-               if(clip_render_object(obi->obr->boundbox, bounds, winmat))
+               if(clip_render_object(obi->obr->boundbox, bounds, obwinmat))
                        continue;
                
                widthx= obr->strandbuf->maxwidth*obwinmat[0][0];
@@ -864,7 +865,7 @@
                /* for each bounding box containing a number of strands */
                sbound= obr->strandbuf->bound;
                for(c=0; c<obr->strandbuf->totbound; c++, sbound++) {
-                       if(clip_render_object(sbound->boundbox, bounds, winmat))
+                       if(clip_render_object(sbound->boundbox, bounds, 
obwinmat))
                                continue;
 
                        /* for each strand in this bounding box */
@@ -931,11 +932,6 @@
                        obi= &re->objectinstance[sortseg->obi];
                        obr= obi->obr;
 
-                       if(obi->flag & R_TRANSFORMED)
-                               mul_m4_m4m4(obwinmat, obi->mat, winmat);
-                       else
-                               copy_m4_m4(obwinmat, winmat);
-
                        sseg.obi= obi;
                        sseg.strand= RE_findOrAddStrand(obr, sortseg->strand);
                        sseg.buffer= sseg.strand->buffer;
@@ -951,7 +947,7 @@
 
                        spart.segment= &sseg;
 
-                       render_strand_segment(re, obwinmat, &spart, &zspan, 1, 
&sseg);
+                       render_strand_segment(re, winmat, &spart, &zspan, 1, 
&sseg);
                }
        }
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to