Fix T44398: Compositing displace node makes image fuzzy with zero displacement

EWA filtering with zero derivatives is introducing some fuzzyness into the
image. Currently solved by using regular sampling for cases when derivatives
are zero, which should also make compo faster in that areas.

Still need to look into checking if EWA filter can be tweaked in a way so
no fuzzyness is introduced.
This commit is contained in:
Sergey Sharybin 2015-05-12 17:24:07 +05:00
parent 8697c19e91
commit 7c2905b8ec
Notes: blender-bot 2023-02-14 09:14:25 +01:00
Referenced by issue #44398, Compositing displace node
1 changed files with 7 additions and 3 deletions

View File

@ -55,9 +55,13 @@ void DisplaceOperation::executePixelSampled(float output[4], float x, float y, P
float uv[2], deriv[2][2];
pixelTransform(xy, uv, deriv);
/* EWA filtering (without nearest it gets blurry with NO distortion) */
this->m_inputColorProgram->readFiltered(output, uv[0], uv[1], deriv[0], deriv[1], COM_PS_BILINEAR);
if(is_zero_v2(deriv[0]) && is_zero_v2(deriv[1])) {
this->m_inputColorProgram->readSampled(output, uv[0], uv[1], COM_PS_BILINEAR);
}
else {
/* EWA filtering (without nearest it gets blurry with NO distortion) */
this->m_inputColorProgram->readFiltered(output, uv[0], uv[1], deriv[0], deriv[1], COM_PS_BILINEAR);
}
}
bool DisplaceOperation::read_displacement(float x, float y, float xscale, float yscale, const float origin[2], float &r_u, float &r_v)