diff options
author | Ton Roosendaal <ton@blender.org> | 2007-05-05 17:14:10 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2007-05-05 17:14:10 +0400 |
commit | 03040b54b3e46a5e8475001b6d42df7489eb4664 (patch) | |
tree | d833541236ef4f0c7a73bbffd811fa4d42c8a77b | |
parent | ad886183e3a4aed603a079062530e22b6938ab3c (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.c | 14 |
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); |