Я делаю игру на основе спрайтов, и у меня есть куча изображений, которые я получаю с невероятно большим разрешением, и я масштабирую их до желаемого размера спрайта (например, 64x64 пикселей), прежде чем преобразовать их в игровой ресурс, поэтому, когда рисую спрайт внутри игры, мне не нужно его масштабировать.
Однако, если я поверну этот маленький спрайт внутри игры (независимо от движка), некоторые пиксели назначения будут интерполированы, и спрайт будет выглядеть нечетким.
Это, конечно, зависит от угла поворота, а также от алгоритма интерполяции, но, тем не менее, недостаточно данных для правильной выборки определенного целевого пикселя.
Так что я могу придумать два решения. Во-первых, использовать исходное огромное изображение, повернуть его на нужные углы, а затем уменьшить масштаб всех возникающих вариантов и поместить их в атлас, который имеет преимущество в простоте реализации, но наивно потребляет в два раза больше спрайта. место для каждого вращения (каждое вращение должно быть вписано в круг, диаметр которого является диагональю прямоугольника исходного спрайта, площадь которого в два раза больше этого исходного прямоугольника, предполагая квадратные спрайты).
Он также имеет недостаток, заключающийся в наличии только заранее определенного набора вращений, который может быть нормальным или нет в зависимости от игры.
Таким образом, другой выбор - хранить увеличенное изображение, а также поворачивать и уменьшать его масштаб при рендеринге, что приводит к моему вопросу.
Каков оптимальный размер для этого спрайта? Оптимальный смысл, что большее изображение не будет иметь никакого эффекта в получающемся изображении.
Это определенно зависит от размера изображения, количества желаемых поворотов без потери данных до 1/256, что является минимальной представимой разницей в цвете.
Я ищу теоретический общий ответ на эту проблему, потому что попробовать кучу размеров может быть хорошо, но далеко не оптимально.