Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/eevee/eevee_bloom.c
| Show First 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | e_data.bloom_resolve_sh[0] = DRW_shader_create_fullscreen( | ||||
| datatoc_effect_bloom_frag_glsl, | datatoc_effect_bloom_frag_glsl, | ||||
| "#define STEP_RESOLVE\n"); | "#define STEP_RESOLVE\n"); | ||||
| e_data.bloom_resolve_sh[1] = DRW_shader_create_fullscreen( | e_data.bloom_resolve_sh[1] = DRW_shader_create_fullscreen( | ||||
| datatoc_effect_bloom_frag_glsl, | datatoc_effect_bloom_frag_glsl, | ||||
| "#define STEP_RESOLVE\n" | "#define STEP_RESOLVE\n" | ||||
| "#define HIGH_QUALITY\n"); | "#define HIGH_QUALITY\n"); | ||||
| } | } | ||||
| int EEVEE_bloom_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | int EEVEE_bloom_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_bool(props, "bloom_enable")) { | if (BKE_collection_engine_property_value_get_bool(props, "bloom_enable")) { | ||||
| const float *viewport_size = DRW_viewport_size_get(); | const float *viewport_size = DRW_viewport_size_get(); | ||||
| /* Shaders */ | /* Shaders */ | ||||
| if (!e_data.bloom_blit_sh[0]) { | if (!e_data.bloom_blit_sh[0]) { | ||||
| eevee_create_shader_bloom(); | eevee_create_shader_bloom(); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | static DRWShadingGroup *eevee_create_bloom_pass( | ||||
| if (upsample) { | if (upsample) { | ||||
| DRW_shgroup_uniform_buffer(grp, "baseBuffer", &effects->unf_base_buffer); | DRW_shgroup_uniform_buffer(grp, "baseBuffer", &effects->unf_base_buffer); | ||||
| DRW_shgroup_uniform_float(grp, "sampleScale", &effects->bloom_sample_scale, 1); | DRW_shgroup_uniform_float(grp, "sampleScale", &effects->bloom_sample_scale, 1); | ||||
| } | } | ||||
| return grp; | return grp; | ||||
| } | } | ||||
| void EEVEE_bloom_cache_init(EEVEE_SceneLayerData *UNUSED(sldata), EEVEE_Data *vedata) | void EEVEE_bloom_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; | ||||
| if ((effects->enabled_effects & EFFECT_BLOOM) != 0) { | if ((effects->enabled_effects & EFFECT_BLOOM) != 0) { | ||||
| /** Bloom algorithm | /** Bloom algorithm | ||||
| * | * | ||||
| ▲ Show 20 Lines • Show All 113 Lines • Show Last 20 Lines | |||||