Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2007-05-05 17:14:10 +0400
committerTon Roosendaal <ton@blender.org>2007-05-05 17:14:10 +0400
commit03040b54b3e46a5e8475001b6d42df7489eb4664 (patch)
treed833541236ef4f0c7a73bbffd811fa4d42c8a77b
parentad886183e3a4aed603a079062530e22b6938ab3c (diff)
Bugfix: SSS render crashed with option "Save buffers".
Apparently brecht wanted to disable it... but enabling it works just OK. Gives at least uniform code for now.
-rw-r--r--source/blender/render/intern/source/pipeline.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 93c80749bca..1d414456eb6 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -544,12 +544,20 @@ static RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int
render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXOB);
}
- /* previewrender and envmap don't do layers, so we make a default one */
+ /* sss, previewrender and envmap don't do layers, so we make a default one */
if(rr->layers.first==NULL) {
rl= MEM_callocN(sizeof(RenderLayer), "new render layer");
BLI_addtail(&rr->layers, rl);
- rl->rectf= MEM_mapallocN(rectx*recty*sizeof(float)*4, "prev/env float rgba");
+ /* duplicate code... */
+ if(rr->exrhandle) {
+ IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.R", 0, 0, NULL);
+ IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.G", 0, 0, NULL);
+ IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.B", 0, 0, NULL);
+ IMB_exr_add_channel(rr->exrhandle, rl->name, "Combined.A", 0, 0, NULL);
+ }
+ else
+ rl->rectf= MEM_mapallocN(rectx*recty*sizeof(float)*4, "Combined rgba");
/* note, this has to be in sync with scene.c */
rl->lay= (1<<20) -1;
@@ -1173,7 +1181,7 @@ static void *do_part_thread(void *pa_v)
zbufshade_tile(pa);
/* merge too on break! */
- if(!R.sss_points && R.result->exrhandle)
+ if(R.result->exrhandle)
save_render_result_tile(&R, pa);
else
merge_render_result(R.result, pa->result);