[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57604] trunk/blender/source/blender/ render/intern/source/pipeline.c: Fix #35439: Render Border have weird influence on compositing
Sergey Sharybin
sergey.vfx at gmail.com
Thu Jun 20 13:32:08 CEST 2013
Revision: 57604
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57604
Author: nazgul
Date: 2013-06-20 11:32:08 +0000 (Thu, 20 Jun 2013)
Log Message:
-----------
Fix #35439: Render Border have weird influence on compositing
Issue was caused by render result passing to a compositor
was having a resolution of border when using a camera border
in cases there's no Render Layer nodes.
Made it so resolution in which compositor works does not
depend on whether Render Layers present or not.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/pipeline.c
Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c 2013-06-20 11:18:19 UTC (rev 57603)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c 2013-06-20 11:32:08 UTC (rev 57604)
@@ -1406,6 +1406,16 @@
re->display_draw(re->ddh, re->result, NULL);
}
+/* make sure disprect is not affected by the render border */
+static void render_result_disprect_to_full_resolution(Render *re)
+{
+ re->disprect.xmin = re->disprect.ymin = 0;
+ re->disprect.xmax = re->winx;
+ re->disprect.ymax = re->winy;
+ re->rectx = re->winx;
+ re->recty = re->winy;
+}
+
/* main render routine, no compositing */
static void do_render_fields_blur_3d(Render *re)
{
@@ -1438,13 +1448,8 @@
/* sub-rect for merge call later on */
re->result->tilerect = re->disprect;
- /* this copying sequence could become function? */
/* weak is: it chances disprect from border */
- re->disprect.xmin = re->disprect.ymin = 0;
- re->disprect.xmax = re->winx;
- re->disprect.ymax = re->winy;
- re->rectx = re->winx;
- re->recty = re->winy;
+ render_result_disprect_to_full_resolution(re);
rres = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
@@ -1910,6 +1915,9 @@
BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE);
render_result_free(re->result);
+ if ((re->r.mode & R_CROP) == 0) {
+ render_result_disprect_to_full_resolution(re);
+ }
re->result = render_result_new(re, &re->disprect, 0, RR_USE_MEM, RR_ALL_LAYERS);
BLI_rw_mutex_unlock(&re->resultmutex);
More information about the Bf-blender-cvs
mailing list