Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <jbakker>2021-01-05 16:59:45 +0300
committerJeroen Bakker <jeroen@blender.org>2021-01-05 17:03:05 +0300
commit1f41bdc6f37fd091bb5649436f68335b10ade51f (patch)
tree699848cf8bff58bdf0e6d6b3cba54aa0d6a5e717 /source/blender/draw/engines/eevee/eevee_engine.c
parent7cd6f667e33e60f3d53e465023bb75f90f499b07 (diff)
Eevee Cryptomatte: Store hashes in render result meta data
Stores cryptomatte hashes as meta data to the render result. Compositors could use this for lookup on names in stead of hashes. Differential Revision: https://developer.blender.org/D9553
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_engine.c')
-rw-r--r--source/blender/draw/engines/eevee/eevee_engine.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index f233b0fda96..c6760de5cfa 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -570,8 +570,6 @@ static void eevee_render_to_image(void *vedata,
EEVEE_motion_blur_data_free(&ved->stl->effects->motion_blur);
if (RE_engine_test_break(engine)) {
- /* Cryptomatte buffers are freed during render_read_result */
- EEVEE_cryptomatte_free(vedata);
return;
}
@@ -586,6 +584,16 @@ static void eevee_render_to_image(void *vedata,
}
}
+static void eevee_store_metadata(void *vedata, struct RenderResult *render_result)
+{
+ EEVEE_Data *ved = (EEVEE_Data *)vedata;
+ EEVEE_PrivateData *g_data = ved->stl->g_data;
+ if (g_data->render_passes & EEVEE_RENDER_PASS_CRYPTOMATTE) {
+ EEVEE_cryptomatte_store_metadata(ved, render_result);
+ EEVEE_cryptomatte_free(ved);
+ }
+}
+
static void eevee_engine_free(void)
{
EEVEE_shaders_free();
@@ -611,6 +619,7 @@ DrawEngineType draw_engine_eevee_type = {
&eevee_view_update,
&eevee_id_update,
&eevee_render_to_image,
+ &eevee_store_metadata,
};
RenderEngineType DRW_engine_viewport_eevee_type = {