diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-05-11 17:20:10 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-05-11 17:29:35 +0300 |
commit | 3fbafaffa11632e3b9f7011317060777c48040aa (patch) | |
tree | 33137b7b031e91d011ce9e2f28ca7a97edf9ee01 /source/blender/draw/engines/eevee/eevee_effects.c | |
parent | 3341c11bccf46c82aaf7b45f9249913e91885a52 (diff) |
Eevee: Add tonemapping using ocio.
Actually it's done by the Draw Manager, so other engines can use it.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_effects.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_effects.c | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c index 429bb3c790e..d150bf1720c 100644 --- a/source/blender/draw/engines/eevee/eevee_effects.c +++ b/source/blender/draw/engines/eevee/eevee_effects.c @@ -64,8 +64,6 @@ static struct { struct GPUShader *dof_downsample_sh; struct GPUShader *dof_scatter_sh; struct GPUShader *dof_resolve_sh; - - struct GPUShader *tonemap_sh; } e_data = {NULL}; /* Engine data */ extern char datatoc_effect_motion_blur_frag_glsl[]; @@ -174,10 +172,6 @@ void EEVEE_effects_init(EEVEE_Data *vedata) "#define HIGH_QUALITY\n"); } - if (!e_data.tonemap_sh) { - e_data.tonemap_sh = DRW_shader_create_fullscreen(datatoc_tonemap_frag_glsl, NULL); - } - if (!stl->effects) { stl->effects = MEM_callocN(sizeof(EEVEE_EffectsInfo), "EEVEE_EffectsInfo"); } @@ -489,16 +483,6 @@ void EEVEE_effects_cache_init(EEVEE_Data *vedata) DRW_shgroup_uniform_vec3(grp, "dofParams", effects->dof_params, 1); DRW_shgroup_call_add(grp, quad, NULL); } - - { - /* Final pass : Map HDR color to LDR color. - * Write result to the default color buffer */ - psl->tonemap = DRW_pass_create("Tone Mapping", DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND); - - DRWShadingGroup *grp = DRW_shgroup_create(e_data.tonemap_sh, psl->tonemap); - DRW_shgroup_uniform_buffer(grp, "hdrColorBuf", &effects->source_buffer); - DRW_shgroup_call_add(grp, quad, NULL); - } } #define SWAP_BUFFERS() { \ @@ -624,13 +608,11 @@ void EEVEE_draw_effects(EEVEE_Data *vedata) DRW_framebuffer_bind(dfbl->default_fb); /* Tonemapping */ - /* TODO : use OCIO */ - DRW_draw_pass(psl->tonemap); + DRW_transform_to_display(effects->source_buffer); } void EEVEE_effects_free(void) { - DRW_SHADER_FREE_SAFE(e_data.tonemap_sh); DRW_SHADER_FREE_SAFE(e_data.motion_blur_sh); DRW_SHADER_FREE_SAFE(e_data.dof_downsample_sh); DRW_SHADER_FREE_SAFE(e_data.dof_scatter_sh); |