Revision: 33710
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33710
Author:   ton
Date:     2010-12-16 13:49:48 +0100 (Thu, 16 Dec 2010)

Log Message:
-----------
Bugfix #22794

Panorama render is now border-render safe.

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

Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c        
2010-12-16 12:48:30 UTC (rev 33709)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c        
2010-12-16 12:49:48 UTC (rev 33710)
@@ -1494,14 +1494,15 @@
 float panorama_pixel_rot(Render *re)
 {
        float psize, phi, xfac;
+       float borderfac= (float)(re->disprect.xmax - re->disprect.xmin) / 
(float)re->winx;
        
        /* size of 1 pixel mapped to viewplane coords */
-       psize= (re->viewplane.xmax-re->viewplane.xmin)/(float)re->winx;
+       psize= (re->viewplane.xmax-re->viewplane.xmin)/(float)(re->winx);
        /* angle of a pixel */
        phi= atan(psize/re->clipsta);
        
        /* correction factor for viewplane shifting, first calculate how much 
the viewplane angle is */
-       xfac= ((re->viewplane.xmax-re->viewplane.xmin))/(float)re->xparts;
+       xfac= 
borderfac*((re->viewplane.xmax-re->viewplane.xmin))/(float)re->xparts;
        xfac= atan(0.5f*xfac/re->clipsta); 
        /* and how much the same viewplane angle is wrapped */
        psize= 0.5f*phi*((float)re->partx);
@@ -1532,9 +1533,9 @@
                        
        if(best) {
                float phi= panorama_pixel_rot(re);
-               /* R.disprect.xmax - R.disprect.xmin rather then R.winx for 
border render */
+
                R.panodxp= (re->winx - (best->disprect.xmin + 
best->disprect.xmax) )/2;
-               R.panodxv= 
((viewplane->xmax-viewplane->xmin)*R.panodxp)/(float)(R.disprect.xmax - 
R.disprect.xmin);
+               R.panodxv= 
((viewplane->xmax-viewplane->xmin)*R.panodxp)/(float)(re->winx);
 
                /* shift viewplane */
                R.viewplane.xmin = viewplane->xmin + R.panodxv;

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c      
2010-12-16 12:48:30 UTC (rev 33709)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c      
2010-12-16 12:49:48 UTC (rev 33710)
@@ -97,13 +97,7 @@
        else {
                
                if(R.r.mode & R_PANORAMA) {
-                       if(R.r.mode & R_BORDER) {
-                               /* scale by the win/border size */
-                               x-= R.panodxp * ((float)R.winx / 
(float)(R.disprect.xmax - R.disprect.xmin));
-                       }
-                       else {
-                               x-= R.panodxp;
-                       }
+                       x-= R.panodxp;
                }
                
                /* move x and y to real viewplane coords */


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

Reply via email to