Текстура, которая будет рендериться не “пиксель-в-пиксель” нужно подготовить таким образом, что бы ее бордюр был того же цвета, что и соседний пиксель. Танцы с бубном и коллективный разум ЛОРа помог найти простое решение:
Корректировка набора текстур размером 30×30 до размера 32×32 без искажения изображения на текстуре:
convert input_*.png \ -define distort:viewport=32x32-1-1 \ -filter point \ -distort SRT 0 +repage PNG32:fixed_%03d.png
Теперь остается изменить текстурные координаты и можно скейлить текстуру без боязни, что крайние пиксели станут не того цвета.
Если раньше текстурные координаты (в пикселях, условно) были 0x0 -> 30×30, то теперь они будут 1×1 -> 31,31.