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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-08-14 16:30:26 +0300
committerStefan Werner <stefan.werner@tangent-animation.com>2019-08-14 22:40:35 +0300
commit5489611e53176ad4c1d5ac626db6377b27624cce (patch)
treee31b54de2e6ac9b0086267fe0638b6cac46459be /source/blender/compositor/operations/COM_DenoiseOperation.h
parent1845f0ee8b33698ddd48c22000004ad4084a77ab (diff)
Compositor: Added denoising node
This node is built on Intel's OpenImageDenoise library. Other denoisers could be integrated, for example Lukas' Cycles denoiser. Compositor: Made OpenImageDenoise optional, added CMake and build_env files to find OIDN Compositor: Fixed some warnings in the denoising operator build_environment: Updated OpenImageDenoise to 0.8.1 build_environment: Updated OpenImageDenoise in `make deps` for macOS Reviewers: sergey, jbakker, brecht Reviewed By: brecht Subscribers: YAFU, LazyDodo, Zen_YS, slumber, samgreen, tjvoll, yeus, ponomarovmax, getrad, coder.kalyan, vitos1k, Yegor, DeepBlender, kumaran7, Darkfie9825, aliasguru, aafra, ace_dragon, juang3d, pandrodor, cdog, lordodin, jtheninja, mavek, marcog, 5k1n2, Atair, rawalanche, 0o00o0oo, filibis, poor, lukasstockner97 Tags: #compositing Differential Revision: https://developer.blender.org/D4304
Diffstat (limited to 'source/blender/compositor/operations/COM_DenoiseOperation.h')
-rw-r--r--source/blender/compositor/operations/COM_DenoiseOperation.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.h b/source/blender/compositor/operations/COM_DenoiseOperation.h
new file mode 100644
index 00000000000..6e19bd6034a
--- /dev/null
+++ b/source/blender/compositor/operations/COM_DenoiseOperation.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2019, Blender Foundation.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Contributor:
+ * Stefan Werner
+ */
+
+#ifndef __COM_DENOISEBASEOPERATION_H__
+#define __COM_DENOISEBASEOPERATION_H__
+
+#include "COM_SingleThreadedOperation.h"
+#include "DNA_node_types.h"
+
+class DenoiseOperation : public SingleThreadedOperation {
+ private:
+ /**
+ * \brief Cached reference to the input programs
+ */
+ SocketReader *m_inputProgramColor;
+ SocketReader *m_inputProgramAlbedo;
+ SocketReader *m_inputProgramNormal;
+
+ /**
+ * \brief settings of the denoise node.
+ */
+ NodeDenoise *m_settings;
+
+ public:
+ DenoiseOperation();
+ /**
+ * Initialize the execution
+ */
+ void initExecution();
+
+ /**
+ * Deinitialize the execution
+ */
+ void deinitExecution();
+
+ void setDenoiseSettings(NodeDenoise *settings)
+ {
+ this->m_settings = settings;
+ }
+ bool determineDependingAreaOfInterest(rcti *input,
+ ReadBufferOperation *readOperation,
+ rcti *output);
+
+ protected:
+ void generateDenoise(float *data,
+ MemoryBuffer *inputTileColor,
+ MemoryBuffer *inputTileAlbedo,
+ MemoryBuffer *inputTileNormal,
+ NodeDenoise *settings);
+
+ MemoryBuffer *createMemoryBuffer(rcti *rect);
+};
+#endif