diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-10-08 18:07:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-10-08 18:20:09 +0300 |
commit | 8c4a7593f2189a57d348f4c3caf9fc1e3d552059 (patch) | |
tree | 8ed8884b15427003542972fcea953e66976323b7 /source/blender/draw/engines/eevee/eevee_render.c | |
parent | eea22dd5ef0aaf58066bbff460315c8867741920 (diff) |
EEVEE: Fix unpremultiplied alpha in render result
Fix T57102
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_render.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_render.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index 117d48e2dc5..000649f42ac 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -191,6 +191,12 @@ static void eevee_render_result_combined( rect->xmin, rect->ymin, BLI_rcti_size_x(rect), BLI_rcti_size_y(rect), 4, 0, rp->rect); + + /* Premult alpha */ + int pixels_len = BLI_rcti_size_x(rect) * BLI_rcti_size_y(rect); + for (int i = 0; i < pixels_len * 4; i += 4) { + mul_v3_fl(rp->rect + i, rp->rect[i + 3]); + } } static void eevee_render_result_subsurface( |