ImageMagick logo

Текстура, которая будет рендериться не “пиксель-в-пиксель” нужно подготовить таким образом, что бы ее бордюр был того же цвета, что и соседний пиксель. Танцы с бубном и коллективный разум ЛОРа помог найти простое решение:

Корректировка набора текстур размером 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.