diff options
author | Lukas Tönne <lukas.toenne@gmail.com> | 2014-03-15 13:24:07 +0400 |
---|---|---|
committer | Lukas Tönne <lukas.toenne@gmail.com> | 2014-03-15 13:28:11 +0400 |
commit | caf5d90fb07d2aee5cdb49635ec726ae22df6c78 (patch) | |
tree | 44448f3263794fadfa328543a30a14fc53808494 | |
parent | 2aff2435f016072f8cb216a13bc05340d3934d1e (diff) |
Fix T39189: Node editor Map Uv requires an scale node to work.
This is a regression caused by rB67134a7bf689279785e2e40b29cd24243813998b
The UV coordinates read from the UV input must be scaled by the Image
input size instead of the UV input size.
Also now this node uses the UV input resolution instead of the Image
resolution, since this is what determines the available resolution. The
image is EWA-sampled anyway, it's resolution does not have a direct
impact.
-rw-r--r-- | source/blender/compositor/operations/COM_MapUVOperation.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_MapUVOperation.cpp b/source/blender/compositor/operations/COM_MapUVOperation.cpp index 292f073548a..87ad1d6afa4 100644 --- a/source/blender/compositor/operations/COM_MapUVOperation.cpp +++ b/source/blender/compositor/operations/COM_MapUVOperation.cpp @@ -29,6 +29,7 @@ MapUVOperation::MapUVOperation() : NodeOperation() this->addOutputSocket(COM_DT_COLOR); this->m_alpha = 0.0f; this->setComplex(true); + setResolutionInputSocketIndex(1); this->m_inputUVProgram = NULL; this->m_inputColorProgram = NULL; @@ -84,8 +85,8 @@ bool MapUVOperation::read_uv(float x, float y, float &r_u, float &r_v, float &r_ else { float col[4]; m_inputUVProgram->readSampled(col, x, y, COM_PS_BILINEAR); - r_u = col[0] * width; - r_v = col[1] * height; + r_u = col[0] * m_inputColorProgram->getWidth(); + r_v = col[1] * m_inputColorProgram->getHeight(); r_alpha = col[2]; return true; } |