Compositor: Reversed order of Normal and Albedo in Denoising Node.
This commit is contained in:
parent
d547f9d3d2
commit
cd890c4c25
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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, ""}};
|
||||
|
||||
|
|
Loading…
Reference in New Issue