Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_temporal_sampling.c
| Show All 38 Lines | |||||
| extern char datatoc_effect_temporal_aa_glsl[]; | extern char datatoc_effect_temporal_aa_glsl[]; | ||||
| static void eevee_create_shader_temporal_sampling(void) | static void eevee_create_shader_temporal_sampling(void) | ||||
| { | { | ||||
| e_data.taa_resolve_sh = DRW_shader_create_fullscreen(datatoc_effect_temporal_aa_glsl, NULL); | e_data.taa_resolve_sh = DRW_shader_create_fullscreen(datatoc_effect_temporal_aa_glsl, NULL); | ||||
| } | } | ||||
| int EEVEE_temporal_sampling_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | int EEVEE_temporal_sampling_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| { | { | ||||
| EEVEE_StorageList *stl = vedata->stl; | EEVEE_StorageList *stl = vedata->stl; | ||||
| EEVEE_FramebufferList *fbl = vedata->fbl; | EEVEE_FramebufferList *fbl = vedata->fbl; | ||||
| EEVEE_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| 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; | ||||
| 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_int(props, "taa_samples") != 1 && | if (BKE_collection_engine_property_value_get_int(props, "taa_samples") != 1 && | ||||
| /* FIXME the motion blur camera evaluation is tagging view_updated | /* FIXME the motion blur camera evaluation is tagging view_updated | ||||
| * thus making the TAA always reset and never stopping rendering. */ | * thus making the TAA always reset and never stopping rendering. */ | ||||
| (effects->enabled_effects & EFFECT_MOTION_BLUR) == 0) | (effects->enabled_effects & EFFECT_MOTION_BLUR) == 0) | ||||
| { | { | ||||
| const float *viewport_size = DRW_viewport_size_get(); | const float *viewport_size = DRW_viewport_size_get(); | ||||
| float persmat[4][4], viewmat[4][4]; | float persmat[4][4], viewmat[4][4]; | ||||
| ▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | int EEVEE_temporal_sampling_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) | ||||
| /* Cleanup to release memory */ | /* Cleanup to release memory */ | ||||
| DRW_TEXTURE_FREE_SAFE(txl->depth_double_buffer); | DRW_TEXTURE_FREE_SAFE(txl->depth_double_buffer); | ||||
| DRW_FRAMEBUFFER_FREE_SAFE(fbl->depth_double_buffer_fb); | DRW_FRAMEBUFFER_FREE_SAFE(fbl->depth_double_buffer_fb); | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| void EEVEE_temporal_sampling_cache_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | void EEVEE_temporal_sampling_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_TextureList *txl = vedata->txl; | EEVEE_TextureList *txl = vedata->txl; | ||||
| EEVEE_EffectsInfo *effects = stl->effects; | EEVEE_EffectsInfo *effects = stl->effects; | ||||
| if ((effects->enabled_effects & EFFECT_TAA) != 0) { | if ((effects->enabled_effects & EFFECT_TAA) != 0) { | ||||
| psl->taa_resolve = DRW_pass_create("Temporal AA Resolve", DRW_STATE_WRITE_COLOR); | psl->taa_resolve = DRW_pass_create("Temporal AA Resolve", DRW_STATE_WRITE_COLOR); | ||||
| ▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines | |||||