From 03040b54b3e46a5e8475001b6d42df7489eb4664 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 5 May 2007 13:14:10 +0000 Subject: 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. --- source/blender/render/intern/source/pipeline.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'source') 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); -- cgit v1.2.3