[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33710] trunk/blender/source/blender/ render/intern/source: Bugfix #22794
Ton Roosendaal
ton at blender.org
Thu Dec 16 13:49:48 CET 2010
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 */
More information about the Bf-blender-cvs
mailing list