From cd890c4c256ebe396a42a3b20476d81faa10d3b1 Mon Sep 17 00:00:00 2001 From: Stefan Werner Date: Tue, 27 Aug 2019 14:43:48 +0200 Subject: Compositor: Reversed order of Normal and Albedo in Denoising Node. --- .../compositor/operations/COM_DenoiseOperation.cpp | 32 +++++++++++----------- .../compositor/operations/COM_DenoiseOperation.h | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) (limited to 'source/blender/compositor') diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.cpp b/source/blender/compositor/operations/COM_DenoiseOperation.cpp index 82a529dc2ef..e7068c953fb 100644 --- a/source/blender/compositor/operations/COM_DenoiseOperation.cpp +++ b/source/blender/compositor/operations/COM_DenoiseOperation.cpp @@ -30,9 +30,9 @@ static pthread_mutex_t oidn_lock = BLI_MUTEX_INITIALIZER; DenoiseOperation::DenoiseOperation() : SingleThreadedOperation() { - this->addInputSocket(COM_DT_COLOR); this->addInputSocket(COM_DT_COLOR); this->addInputSocket(COM_DT_VECTOR); + this->addInputSocket(COM_DT_COLOR); this->addOutputSocket(COM_DT_COLOR); this->m_settings = NULL; } @@ -40,23 +40,23 @@ void DenoiseOperation::initExecution() { SingleThreadedOperation::initExecution(); this->m_inputProgramColor = getInputSocketReader(0); - this->m_inputProgramAlbedo = getInputSocketReader(1); - this->m_inputProgramNormal = getInputSocketReader(2); + this->m_inputProgramNormal = getInputSocketReader(1); + this->m_inputProgramAlbedo = getInputSocketReader(2); } void DenoiseOperation::deinitExecution() { this->m_inputProgramColor = NULL; - this->m_inputProgramAlbedo = NULL; this->m_inputProgramNormal = NULL; + this->m_inputProgramAlbedo = NULL; SingleThreadedOperation::deinitExecution(); } MemoryBuffer *DenoiseOperation::createMemoryBuffer(rcti *rect2) { MemoryBuffer *tileColor = (MemoryBuffer *)this->m_inputProgramColor->initializeTileData(rect2); - MemoryBuffer *tileAlbedo = (MemoryBuffer *)this->m_inputProgramAlbedo->initializeTileData(rect2); MemoryBuffer *tileNormal = (MemoryBuffer *)this->m_inputProgramNormal->initializeTileData(rect2); + MemoryBuffer *tileAlbedo = (MemoryBuffer *)this->m_inputProgramAlbedo->initializeTileData(rect2); rcti rect; rect.xmin = 0; rect.ymin = 0; @@ -64,7 +64,7 @@ MemoryBuffer *DenoiseOperation::createMemoryBuffer(rcti *rect2) rect.ymax = getHeight(); MemoryBuffer *result = new MemoryBuffer(COM_DT_COLOR, &rect); float *data = result->getBuffer(); - this->generateDenoise(data, tileColor, tileAlbedo, tileNormal, this->m_settings); + this->generateDenoise(data, tileColor, tileNormal, tileAlbedo, this->m_settings); return result; } @@ -87,8 +87,8 @@ bool DenoiseOperation::determineDependingAreaOfInterest(rcti * /*input*/, void DenoiseOperation::generateDenoise(float *data, MemoryBuffer *inputTileColor, - MemoryBuffer *inputTileAlbedo, MemoryBuffer *inputTileNormal, + MemoryBuffer *inputTileAlbedo, NodeDenoise *settings) { float *inputBufferColor = inputTileColor->getBuffer(); @@ -109,15 +109,6 @@ void DenoiseOperation::generateDenoise(float *data, inputTileColor->getHeight(), 0, 4 * sizeof(float)); - if (inputTileAlbedo && inputTileAlbedo->getBuffer()) { - filter.setImage("albedo", - inputTileAlbedo->getBuffer(), - oidn::Format::Float3, - inputTileAlbedo->getWidth(), - inputTileAlbedo->getHeight(), - 0, - 4 * sizeof(float)); - } if (inputTileNormal && inputTileNormal->getBuffer()) { filter.setImage("normal", inputTileNormal->getBuffer(), @@ -127,6 +118,15 @@ void DenoiseOperation::generateDenoise(float *data, 0, 3 * sizeof(float)); } + if (inputTileAlbedo && inputTileAlbedo->getBuffer()) { + filter.setImage("albedo", + inputTileAlbedo->getBuffer(), + oidn::Format::Float3, + inputTileAlbedo->getWidth(), + inputTileAlbedo->getHeight(), + 0, + 4 * sizeof(float)); + } filter.setImage("output", data, oidn::Format::Float3, diff --git a/source/blender/compositor/operations/COM_DenoiseOperation.h b/source/blender/compositor/operations/COM_DenoiseOperation.h index 6e19bd6034a..73165174932 100644 --- a/source/blender/compositor/operations/COM_DenoiseOperation.h +++ b/source/blender/compositor/operations/COM_DenoiseOperation.h @@ -62,8 +62,8 @@ class DenoiseOperation : public SingleThreadedOperation { protected: void generateDenoise(float *data, MemoryBuffer *inputTileColor, - MemoryBuffer *inputTileAlbedo, MemoryBuffer *inputTileNormal, + MemoryBuffer *inputTileAlbedo, NodeDenoise *settings); MemoryBuffer *createMemoryBuffer(rcti *rect); -- cgit v1.2.3