Fixes in reading back rendered temp files ("Save buffers" and "FSA" options).
Press Rkey in compositor for reading back render results and invoke a compo. This now correctly reads AO (skipped it sometimes) and it makes a correct composite. FSA todo: - hotkey + button for reading all samples back + composite - solve black border around image
This commit is contained in:
@@ -478,7 +478,7 @@ int IMB_exr_begin_read(void *handle, char *filename, int *width, int *height)
|
||||
{
|
||||
ExrHandle *data= (ExrHandle *)handle;
|
||||
|
||||
if(BLI_exists(filename)) {
|
||||
if(BLI_exists(filename) && BLI_filepathsize(filename)>32) { /* 32 is arbitrary, but zero length files crashes exr */
|
||||
data->ifile = new InputFile(filename);
|
||||
if(data->ifile) {
|
||||
Box2i dw = data->ifile->header().dataWindow();
|
||||
|
||||
@@ -562,23 +562,16 @@ static RenderResult *new_render_result(Render *re, rcti *partrct, int crop, int
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_DIFFUSE);
|
||||
if(srl->passflag & SCE_PASS_SPEC)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_SPEC);
|
||||
if(re->r.mode & R_SHADOW)
|
||||
if(srl->passflag & SCE_PASS_SHADOW)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_SHADOW);
|
||||
if(re->r.mode & R_RAYTRACE) {
|
||||
if(srl->passflag & SCE_PASS_AO)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_AO);
|
||||
if(srl->passflag & SCE_PASS_REFLECT)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_REFLECT);
|
||||
if(srl->passflag & SCE_PASS_REFRACT)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_REFRACT);
|
||||
}
|
||||
else if(re->wrld.mode & WO_AMB_OCC)
|
||||
if(re->wrld.ao_gather_method == WO_AOGATHER_APPROX)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_AO);
|
||||
if(re->r.mode & R_RADIO)
|
||||
if(srl->passflag & SCE_PASS_RADIO)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_RADIO);
|
||||
if(srl->passflag & SCE_PASS_AO)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_AO);
|
||||
if(srl->passflag & SCE_PASS_SHADOW)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_SHADOW);
|
||||
if(srl->passflag & SCE_PASS_REFLECT)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_REFLECT);
|
||||
if(srl->passflag & SCE_PASS_REFRACT)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_REFRACT);
|
||||
if(srl->passflag & SCE_PASS_RADIO)
|
||||
render_layer_add_pass(rr, rl, 3, SCE_PASS_RADIO);
|
||||
if(srl->passflag & SCE_PASS_INDEXOB)
|
||||
render_layer_add_pass(rr, rl, 1, SCE_PASS_INDEXOB);
|
||||
if(srl->passflag & SCE_PASS_MIST)
|
||||
|
||||
@@ -2005,6 +2005,10 @@ void node_read_renderlayers(SpaceNode *snode)
|
||||
}
|
||||
}
|
||||
|
||||
/* own render result should be read/allocated */
|
||||
if(G.scene->id.flag & LIB_DOIT)
|
||||
RE_ReadRenderResult(G.scene, G.scene);
|
||||
|
||||
snode_handle_recalc(snode);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user