diff options
Diffstat (limited to 'intern/cycles/render/pass.h')
-rw-r--r-- | intern/cycles/render/pass.h | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/intern/cycles/render/pass.h b/intern/cycles/render/pass.h deleted file mode 100644 index 82230c62cb0..00000000000 --- a/intern/cycles/render/pass.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2011-2021 Blender Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include <ostream> // NOLINT - -#include "util/util_string.h" -#include "util/util_vector.h" - -#include "kernel/kernel_types.h" - -#include "graph/node.h" - -CCL_NAMESPACE_BEGIN - -const char *pass_type_as_string(const PassType type); - -enum class PassMode { - NOISY, - DENOISED, -}; -const char *pass_mode_as_string(PassMode mode); -std::ostream &operator<<(std::ostream &os, PassMode mode); - -struct PassInfo { - int num_components = -1; - bool use_filter = false; - bool use_exposure = false; - bool is_written = true; - PassType divide_type = PASS_NONE; - PassType direct_type = PASS_NONE; - PassType indirect_type = PASS_NONE; - - /* Pass access for read can not happen directly and needs some sort of compositing (for example, - * light passes due to divide_type, or shadow catcher pass. */ - bool use_compositing = false; - - /* Used to disable albedo pass for denoising. - * Light and shadow catcher passes should not have discontinuity in the denoised result based on - * the underlying albedo. */ - bool use_denoising_albedo = true; - - /* Pass supports denoising. */ - bool support_denoise = false; -}; - -class Pass : public Node { - public: - NODE_DECLARE - - NODE_SOCKET_API(PassType, type) - NODE_SOCKET_API(PassMode, mode) - NODE_SOCKET_API(ustring, name) - NODE_SOCKET_API(bool, include_albedo) - - Pass(); - - PassInfo get_info() const; - - /* The pass is written by the render pipeline (kernel or denoiser). If the pass is written it - * will have pixels allocated in a RenderBuffer. Passes which are not written do not have their - * pixels allocated to save memory. */ - bool is_written() const; - - protected: - /* The has been created automatically as a requirement to various rendering functionality (such - * as adaptive sampling). */ - bool is_auto_; - - public: - static const NodeEnum *get_type_enum(); - static const NodeEnum *get_mode_enum(); - - static PassInfo get_info(PassType type, const bool include_albedo = false); - - static bool contains(const vector<Pass *> &passes, PassType type); - - /* Returns nullptr if there is no pass with the given name or type+mode. */ - static const Pass *find(const vector<Pass *> &passes, const string &name); - static const Pass *find(const vector<Pass *> &passes, - PassType type, - PassMode mode = PassMode::NOISY); - - /* Returns PASS_UNUSED if there is no corresponding pass. */ - static int get_offset(const vector<Pass *> &passes, const Pass *pass); - - friend class Film; -}; - -std::ostream &operator<<(std::ostream &os, const Pass &pass); - -CCL_NAMESPACE_END |