forked from bartvdbraak/blender
Fix T40764: Keyframed Render Layers Don't Work as Intended
This commit is contained in:
parent
8cea610e74
commit
3bd965bc03
@ -34,11 +34,13 @@
|
|||||||
#define __RENDERPIPELINE_H__
|
#define __RENDERPIPELINE_H__
|
||||||
|
|
||||||
struct Render;
|
struct Render;
|
||||||
|
struct RenderData;
|
||||||
struct RenderLayer;
|
struct RenderLayer;
|
||||||
struct RenderResult;
|
struct RenderResult;
|
||||||
|
|
||||||
struct RenderLayer *render_get_active_layer(struct Render *re, struct RenderResult *rr);
|
struct RenderLayer *render_get_active_layer(struct Render *re, struct RenderResult *rr);
|
||||||
float panorama_pixel_rot(struct Render *re);
|
float panorama_pixel_rot(struct Render *re);
|
||||||
|
void render_update_anim_renderdata(struct Render *re, struct RenderData *rd);
|
||||||
|
|
||||||
#endif /* __RENDERPIPELINE_H__ */
|
#endif /* __RENDERPIPELINE_H__ */
|
||||||
|
|
||||||
|
@ -5146,8 +5146,10 @@ void RE_Database_FromScene(Render *re, Main *bmain, Scene *scene, unsigned int l
|
|||||||
lay &= 0xFF000000;
|
lay &= 0xFF000000;
|
||||||
|
|
||||||
/* applies changes fully */
|
/* applies changes fully */
|
||||||
if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_BUTS_PREVIEW|R_VIEWPORT_PREVIEW))==0)
|
if ((re->r.scemode & (R_NO_FRAME_UPDATE|R_BUTS_PREVIEW|R_VIEWPORT_PREVIEW))==0) {
|
||||||
BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay);
|
BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay);
|
||||||
|
render_update_anim_renderdata(re, &re->scene->r);
|
||||||
|
}
|
||||||
|
|
||||||
/* if no camera, viewmat should have been set! */
|
/* if no camera, viewmat should have been set! */
|
||||||
if (use_camera_view && camera) {
|
if (use_camera_view && camera) {
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
#include "RE_bake.h"
|
#include "RE_bake.h"
|
||||||
|
|
||||||
#include "initrender.h"
|
#include "initrender.h"
|
||||||
|
#include "renderpipeline.h"
|
||||||
#include "render_types.h"
|
#include "render_types.h"
|
||||||
#include "render_result.h"
|
#include "render_result.h"
|
||||||
|
|
||||||
@ -575,6 +576,7 @@ int RE_engine_render(Render *re, int do_all)
|
|||||||
}
|
}
|
||||||
|
|
||||||
BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay);
|
BKE_scene_update_for_newframe(re->eval_ctx, re->main, re->scene, lay);
|
||||||
|
render_update_anim_renderdata(re, &re->scene->r);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create render result */
|
/* create render result */
|
||||||
|
@ -730,7 +730,7 @@ void RE_ChangeResolution(Render *re, int winx, int winy, rcti *disprect)
|
|||||||
|
|
||||||
/* update some variables that can be animated, and otherwise wouldn't be due to
|
/* update some variables that can be animated, and otherwise wouldn't be due to
|
||||||
* RenderData getting copied once at the start of animation render */
|
* RenderData getting copied once at the start of animation render */
|
||||||
static void render_update_anim_renderdata(Render *re, RenderData *rd)
|
void render_update_anim_renderdata(Render *re, RenderData *rd)
|
||||||
{
|
{
|
||||||
/* filter */
|
/* filter */
|
||||||
re->r.gauss = rd->gauss;
|
re->r.gauss = rd->gauss;
|
||||||
|
Loading…
Reference in New Issue
Block a user