The error was introduced in #78061e6c3e74e932218fec0bad2911cc550ad41c. Note this patch correctly fixes the sample to be in the center of the output pixels so it should not be reverted entirely. It…
I have pushed a version that removes my attempt to fix your example, as I now think that is just as wrong as the original version. If you can merge this, I plan to make a different bug for your…
This fix has nothing to do with improving the sample filtering. This is fixing an incorrect transform that is shifting the center of the sample. Improving the filtering will not magically fix an…
This new version reproduces the old behavior, but in a much more limited set of circumstances. Basically any scaling, rotation, or non-integer translation disables it. It also works by forcing…
Some further investigation shows that with the current patch, the user selecting Nearest interpolation will get the always-floor effect of the previous code, which is wrong because the image will…
It would also do ceil/floor depending on which one is odd, so repeated cropping between even/odd will just jiggle the image by .5 pixel, rather than shift it left every time.
I am looking at an "automatic sample pixel centers" patch which will do the same thing as the code before, but only in a much more restricted set of circumstances, in particular it does not do it…
Another idea is to put the origin in the lower-left corner of the domain, so different sized images merged together have their lower-left corners aligned. This is what most software does. However…
Set the transform for odd-sized domains to a translation of 0.5. This aligns the pixels between even and odd-sized domains. A decision has to be made whether the lower-left corner matches between…
In general in other software such as Nuke users get rid of unwanted filtering by doing nearest point sampling. It is generally a bad idea to try to guess whether they want sampling disabled…
Unfortunatly, "After Patch" is the correct image. The centers of pixels of one of the inputs are on the border of the pixels of the other inputs. One of them has to be resampled, in this case it…
If in fact those tests are never supposed to return null then the original code and mine both conflict with that document. It should just be written to assume they are not null.
In any case I…
I think it would be better to write this like this:
The error was done by you in 78061e6c3e74. In this patch you (correctly) changed the transformed location to be in the center of the output pixels. The comment says the floor() is "to retain the …
I am absolutely certain that this fix is correct. Will try to figure out what happened with git blame. My main suspicion is that odd-width domains were being drawn incorrectly in the viewer,…