[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32954] trunk/blender/source/blender/ render/intern/source: bugfix [#22794] Inconsistent behaviour with Panorama, border rendering

Campbell Barton ideasman42 at gmail.com
Tue Nov 9 02:37:58 CET 2010


Revision: 32954
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32954
Author:   campbellbarton
Date:     2010-11-09 02:37:58 +0100 (Tue, 09 Nov 2010)

Log Message:
-----------
bugfix [#22794] Inconsistent behaviour with Panorama, border rendering

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-11-08 23:34:09 UTC (rev 32953)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c	2010-11-09 01:37:58 UTC (rev 32954)
@@ -1531,10 +1531,10 @@
 			
 	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.winx;
-		
+		R.panodxv= ((viewplane->xmax-viewplane->xmin)*R.panodxp)/(float)(R.disprect.xmax - R.disprect.xmin);
+
 		/* shift viewplane */
 		R.viewplane.xmin = viewplane->xmin + R.panodxv;
 		R.viewplane.xmax = viewplane->xmax + R.panodxv;
@@ -2663,10 +2663,6 @@
 	
 	/* forbidden combinations */
 	if(scene->r.mode & R_PANORAMA) {
-		if(scene->r.mode & R_BORDER) {
-			error(erh, "No border supported for Panorama");
-			return 0;
-		}
 		if(scene->r.mode & R_ORTHO) {
 			error(erh, "No Ortho render possible for Panorama");
 			return 0;

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2010-11-08 23:34:09 UTC (rev 32953)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2010-11-09 01:37:58 UTC (rev 32954)
@@ -96,8 +96,15 @@
 	}
 	else {
 		
-		if(R.r.mode & R_PANORAMA)
-			x-= R.panodxp;
+		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;
+			}
+		}
 		
 		/* move x and y to real viewplane coords */
 		x= (x/(float)R.winx);





More information about the Bf-blender-cvs mailing list