From 52d72d9fbbfc343485cbf40b246fa64bfb4f77e5 Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 17 Jun 2024 09:35:03 +0200 Subject: [PATCH] Fix #122847: Show Transparent Render Pass EEVEE has a transparent render pass that renders materials where the render mode is set to blended. This was introduced when EEVEE-Next was still in development, but was never fully backported. This PR adds the missing pieces. Pull Request: https://projects.blender.org/blender/blender/pulls/123298 --- scripts/startup/bl_ui/properties_view_layer.py | 1 + source/blender/draw/engines/eevee_next/eevee_film.hh | 5 ++++- source/blender/draw/engines/eevee_next/eevee_instance.cc | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/startup/bl_ui/properties_view_layer.py b/scripts/startup/bl_ui/properties_view_layer.py index 0562a4cc474..8450b1d6157 100644 --- a/scripts/startup/bl_ui/properties_view_layer.py +++ b/scripts/startup/bl_ui/properties_view_layer.py @@ -184,6 +184,7 @@ class VIEWLAYER_PT_eevee_next_layer_passes_light(ViewLayerButtonsPanel, Panel): col.prop(view_layer, "use_pass_environment") col.prop(view_layer, "use_pass_shadow") col.prop(view_layer, "use_pass_ambient_occlusion", text="Ambient Occlusion") + col.prop(view_layer_eevee, "use_pass_transparent", text="Transparent") col = layout.column() col.active = view_layer.use_pass_ambient_occlusion diff --git a/source/blender/draw/engines/eevee_next/eevee_film.hh b/source/blender/draw/engines/eevee_next/eevee_film.hh index a753f194b2c..40f7ace5b6c 100644 --- a/source/blender/draw/engines/eevee_next/eevee_film.hh +++ b/source/blender/draw/engines/eevee_next/eevee_film.hh @@ -155,7 +155,10 @@ class Film { static bool pass_is_float3(eViewLayerEEVEEPassType pass_type) { return pass_storage_type(pass_type) == PASS_STORAGE_COLOR && - !ELEM(pass_type, EEVEE_RENDER_PASS_COMBINED, EEVEE_RENDER_PASS_VECTOR); + !ELEM(pass_type, + EEVEE_RENDER_PASS_COMBINED, + EEVEE_RENDER_PASS_VECTOR, + EEVEE_RENDER_PASS_TRANSPARENT); } /* Returns layer offset in the accumulation texture. -1 if the pass is not enabled. */ diff --git a/source/blender/draw/engines/eevee_next/eevee_instance.cc b/source/blender/draw/engines/eevee_next/eevee_instance.cc index 85170751ed7..a9dec81fe6c 100644 --- a/source/blender/draw/engines/eevee_next/eevee_instance.cc +++ b/source/blender/draw/engines/eevee_next/eevee_instance.cc @@ -611,6 +611,7 @@ void Instance::update_passes(RenderEngine *engine, Scene *scene, ViewLayer *view CHECK_PASS_LEGACY(ENVIRONMENT, SOCK_RGBA, 3, "RGB"); CHECK_PASS_LEGACY(SHADOW, SOCK_RGBA, 3, "RGB"); CHECK_PASS_LEGACY(AO, SOCK_RGBA, 3, "RGB"); + CHECK_PASS_EEVEE(TRANSPARENT, SOCK_RGBA, 4, "RGBA"); LISTBASE_FOREACH (ViewLayerAOV *, aov, &view_layer->aovs) { if ((aov->flag & AOV_CONFLICT) != 0) {