This patch adds support for multi-pass compositing for EEVEE. This is done by copying the passes used by the compositor node tree to the DRW view data, which can then be accessed by the viewport compositor. The viewport compositor will fallback to the viewport texture or an invalid output of the passes were not initialized, this is currently the case for any render engine that is not EEVEE. A future optimization that we can do is eliminate the film pass copy shaders and only copy the data that EEVEE rendered, which can be a subset of the viewport for border rendering. This is not done at the moment because not all engines support passes at the moment, so the compositor expects full viewport passes. Depends on: #123685, #123817, #123815. Pull Request: https://projects.blender.org/blender/blender/pulls/123378
21 lines
468 B
C++
21 lines
468 B
C++
/* SPDX-FileCopyrightText: 2024 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
|
|
#include "BLI_set.hh"
|
|
|
|
struct Scene;
|
|
struct ViewLayer;
|
|
|
|
namespace blender::bke::compositor {
|
|
|
|
/* Get the set of all passes used by the compositor for the given view layer, identified by their
|
|
* pass names. */
|
|
Set<std::string> get_used_passes(const Scene &scene, const ViewLayer *view_layer);
|
|
|
|
} // namespace blender::bke::compositor
|