[Bf-blender-cvs] [d8876e78a11] eevee-motionblur-object: Merge branch 'master' into eevee-motionblur-object
Clément Foucault
noreply at git.blender.org
Fri Jun 12 15:17:30 CEST 2020
Commit: d8876e78a11dc9b09d41a460c0b294f662a28012
Author: Clément Foucault
Date: Mon Jun 8 12:17:20 2020 +0200
Branches: eevee-motionblur-object
https://developer.blender.org/rBd8876e78a11dc9b09d41a460c0b294f662a28012
Merge branch 'master' into eevee-motionblur-object
===================================================================
===================================================================
diff --cc source/blender/draw/engines/eevee/eevee_engine.c
index 190364b8487,b698574f9d7..2684f64acee
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@@ -421,59 -421,8 +421,59 @@@ static void eevee_render_to_image(void
struct RenderLayer *render_layer,
const rcti *rect)
{
+ EEVEE_Data *ved = (EEVEE_Data *)vedata;
const DRWContextState *draw_ctx = DRW_context_state_get();
+ if (EEVEE_render_do_motion_blur(draw_ctx->depsgraph)) {
+ Scene *scene = DEG_get_evaluated_scene(draw_ctx->depsgraph);
+
+ float shutter = scene->eevee.motion_blur_shutter * 0.5f;
+ float time = DEG_get_ctime(draw_ctx->depsgraph);
+ /* Centered on frame for now. */
+ float start_time = time - shutter;
+ float end_time = time + shutter;
+
+ {
+ EEVEE_motion_blur_step_set(ved, MB_PREV);
+ RE_engine_frame_set(engine, floorf(start_time), fractf(start_time));
+
+ if (!EEVEE_render_init(vedata, engine, draw_ctx->depsgraph)) {
+ return;
+ }
+
+ if (RE_engine_test_break(engine)) {
+ return;
+ }
+
+ DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, EEVEE_render_cache);
+ EEVEE_motion_blur_cache_finish(vedata);
+ /* Reset passlist. This is safe as they are stored into managed memory chunks. */
+ memset(ved->psl, 0, sizeof(*ved->psl));
+ /* Fix memleak */
- BLI_ghash_free(ved->stl->g_data->material_hash, NULL, MEM_freeN);
++ BLI_ghash_free(ved->stl->g_data->material_hash, NULL, NULL);
+ ved->stl->g_data->material_hash = NULL;
+ }
+
+ {
+ EEVEE_motion_blur_step_set(ved, MB_NEXT);
+ RE_engine_frame_set(engine, floorf(end_time), fractf(end_time));
+
+ EEVEE_render_init(vedata, engine, draw_ctx->depsgraph);
+
+ DRW_render_object_iter(vedata, engine, draw_ctx->depsgraph, EEVEE_render_cache);
+ EEVEE_motion_blur_cache_finish(vedata);
+ /* Reset passlist. This is safe as they are stored into managed memory chunks. */
+ memset(ved->psl, 0, sizeof(*ved->psl));
+ /* Fix memleak */
- BLI_ghash_free(ved->stl->g_data->material_hash, NULL, MEM_freeN);
++ BLI_ghash_free(ved->stl->g_data->material_hash, NULL, NULL);
+ ved->stl->g_data->material_hash = NULL;
+ }
+
+ /* Current frame. */
+ EEVEE_motion_blur_step_set(ved, MB_CURR);
+ RE_engine_frame_set(engine, time, 0.0f);
+ }
+
if (!EEVEE_render_init(vedata, engine, draw_ctx->depsgraph)) {
return;
}
More information about the Bf-blender-cvs
mailing list