[Bf-blender-cvs] [cd890c4c256] master: Compositor: Reversed order of Normal and Albedo in Denoising Node.

Stefan Werner noreply at git.blender.org
Tue Aug 27 14:43:53 CEST 2019


Commit: cd890c4c256ebe396a42a3b20476d81faa10d3b1
Author: Stefan Werner
Date:   Tue Aug 27 14:43:48 2019 +0200
Branches: master
https://developer.blender.org/rBcd890c4c256ebe396a42a3b20476d81faa10d3b1

Compositor: Reversed order of Normal and Albedo in Denoising Node.

===================================================================

M	source/blender/compositor/operations/COM_DenoiseOperation.cpp
M	source/blender/compositor/operations/COM_DenoiseOperation.h
M	source/blender/nodes/composite/nodes/node_composite_denoise.c

===================================================================

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);
diff --git a/source/blender/nodes/composite/nodes/node_composite_denoise.c b/source/blender/nodes/composite/nodes/node_composite_denoise.c
index e2fdb08816a..bb62869f470 100644
--- a/source/blender/nodes/composite/nodes/node_composite_denoise.c
+++ b/source/blender/nodes/composite/nodes/node_composite_denoise.c
@@ -33,8 +33,8 @@
 
 static bNodeSocketTemplate cmp_node_denoise_in[] = {
     {SOCK_RGBA, 1, N_("Image"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
-    {SOCK_RGBA, 1, N_("Albedo"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
     {SOCK_VECTOR, 0, N_("Normal"), 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f},
+    {SOCK_RGBA, 1, N_("Albedo"), 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f},
     {-1, 0, ""}};
 static bNodeSocketTemplate cmp_node_denoise_out[] = {{SOCK_RGBA, 0, N_("Image")}, {-1, 0, ""}};



More information about the Bf-blender-cvs mailing list