Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_motion_blur.c
| Show First 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | static void eevee_motion_blur_camera_get_matrix_at_time( | ||||
| mul_m4_m4m4(r_mat, params.winmat, obmat); | mul_m4_m4m4(r_mat, params.winmat, obmat); | ||||
| } | } | ||||
| static void eevee_create_shader_motion_blur(void) | static void eevee_create_shader_motion_blur(void) | ||||
| { | { | ||||
| e_data.motion_blur_sh = DRW_shader_create_fullscreen(datatoc_effect_motion_blur_frag_glsl, NULL); | e_data.motion_blur_sh = DRW_shader_create_fullscreen(datatoc_effect_motion_blur_frag_glsl, NULL); | ||||
| } | } | ||||
| int EEVEE_motion_blur_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | int EEVEE_motion_blur_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| { | { | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_EffectsInfo *effects = stl->effects; | EEVEE_EffectsInfo *effects = stl->effects; | ||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | const DRWContextState *draw_ctx = DRW_context_state_get(); | ||||
| SceneLayer *scene_layer = draw_ctx->scene_layer; | ViewLayer *view_layer = draw_ctx->view_layer; | ||||
| Scene *scene = draw_ctx->scene; | Scene *scene = draw_ctx->scene; | ||||
| View3D *v3d = draw_ctx->v3d; | View3D *v3d = draw_ctx->v3d; | ||||
| RegionView3D *rv3d = draw_ctx->rv3d; | RegionView3D *rv3d = draw_ctx->rv3d; | ||||
| ARegion *ar = draw_ctx->ar; | ARegion *ar = draw_ctx->ar; | ||||
| IDProperty *props = BKE_scene_layer_engine_evaluated_get(scene_layer, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_EEVEE); | IDProperty *props = BKE_view_layer_engine_evaluated_get(view_layer, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_EEVEE); | ||||
| if (BKE_collection_engine_property_value_get_bool(props, "motion_blur_enable") && (draw_ctx->evil_C != NULL)) { | if (BKE_collection_engine_property_value_get_bool(props, "motion_blur_enable") && (draw_ctx->evil_C != NULL)) { | ||||
| /* Update Motion Blur Matrices */ | /* Update Motion Blur Matrices */ | ||||
| if (rv3d->persp == RV3D_CAMOB && v3d->camera) { | if (rv3d->persp == RV3D_CAMOB && v3d->camera) { | ||||
| float persmat[4][4]; | float persmat[4][4]; | ||||
| float ctime = BKE_scene_frame_get(scene); | float ctime = BKE_scene_frame_get(scene); | ||||
| float delta = BKE_collection_engine_property_value_get_float(props, "motion_blur_shutter"); | float delta = BKE_collection_engine_property_value_get_float(props, "motion_blur_shutter"); | ||||
| Show All 24 Lines | #endif | ||||
| return EFFECT_MOTION_BLUR | EFFECT_POST_BUFFER; | return EFFECT_MOTION_BLUR | EFFECT_POST_BUFFER; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| void EEVEE_motion_blur_cache_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | void EEVEE_motion_blur_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| { | { | ||||
| EEVEE_PassList *psl = vedata->psl; | EEVEE_PassList *psl = vedata->psl; | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_EffectsInfo *effects = stl->effects; | EEVEE_EffectsInfo *effects = stl->effects; | ||||
| DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); | ||||
| struct Gwn_Batch *quad = DRW_cache_fullscreen_quad_get(); | struct Gwn_Batch *quad = DRW_cache_fullscreen_quad_get(); | ||||
| Show All 33 Lines | |||||