Я работаю над игрой для мобильного телефона и не могу позволить себе роскошь использовать векторную графику. Я бы хотел, чтобы в игру можно было играть на самых разных устройствах, от планшетов с разрешением 2560x1600 до телефонов с разрешением 320x240. В идеале мне нужен единый набор графических ресурсов для всех разрешений.
Векторные данные не поддерживаются на большом количестве мобильных устройств, поэтому я ограничен.
Как правило, я буду создавать все для устройства высокого класса и уменьшать масштаб при загрузке игры, что дает мне базовую линейную фильтрацию.
Есть ли какие-то особые рекомендации, которым я должен следовать при создании масштабируемой графики? Шрифты — особая головная боль. Я заметил, что более гладкие шрифты с мягкими краями масштабируются лучше, чем четкие шрифты. Вот такие советы мне нужны.
Я скептически отношусь к идее, что «векторы не поддерживаются». Я уверен, что библиотеки существуют для всех мобильных платформ: векторы всегда рассматриваются только как растровые изображения.
{ отредактируйте для ясности :} Хотя приведенное ниже обсуждение «mipmap» относится к 3D-рендерингу, сами мип-карты представляют собой «растровые» текстуры, которые применяются во время рендеринга. Нет никаких причин, по которым нельзя использовать концепцию MIP-карты в качестве активов в 2D-рендеринге на основе пикселей без 3D-конвейера... { end edit }
В любом случае, наиболее распространенной альтернативой является MIP-карта, либо вычисляемая «на лету» (загрузка ЦП, меньше контроля), либо предварительно визуализируемая и сохраняемая (больше памяти). MIP-карты обычно используются для 3D-уровня детализации (LOD), где лучшие ресурсы требуются только для вещей, ближайших к области просмотра.
Если у вас есть предварительно визуализированная графика с несколькими размерами, вы можете выбрать правильный актив для использования в зависимости от размера области просмотра. Это также допускает низкие/средние/высокие предпочтения пользователей, если они сталкиваются с неподходящей производительностью. Кроме того, вы можете упаковать активы по размеру и, возможно, не указывать самый высокий размер в пикселях для устройств с ограниченным объемом памяти.
Поскольку масштабирование всегда связано с потерей качества, возможно, будет полезно выполнить предварительный рендеринг ресурсов, чтобы можно было исправить их качество.
( http://en.wikipedia.org/wiki/Mipmap )
В компьютерной 3D-графике MIP-карты (также MIP-карты) представляют собой предварительно рассчитанные, оптимизированные наборы изображений, которые сопровождают основную текстуру, предназначенные для увеличения скорости рендеринга и уменьшения артефактов сглаживания.
«артефакты сглаживания» = комментарий Скотта «огромная ошибка».
Я в основном ориентируюсь на iOS, но мобильное сафари уже некоторое время поддерживает SVG. По-видимому, браузер Android на Honeycomb и выше также поддерживает SVG. Я склонен использовать только SVG для большинства своих иконок в мобильной iOS.
Альтернативой является использование растра, конечно. Если вы хотите использовать только одно изображение для всех устройств, вам нужно сделать действительно большое изображение, так как вы можете легко уменьшить масштаб, но не увеличить (и чтобы оно выглядело хорошо).
ОБНОВЛЯТЬ:
Если ваш вопрос
Существуют ли масштабируемые форматы изображений, которые не являются векторными?
Тогда ответ - нет, не совсем. Если это не вектор (к этому мы прибавим 3D-моделирование), то это растр. Растровые изображения имеют конечное количество пикселей, поэтому их можно масштабировать только до этой точки. Вы можете уменьшить масштаб с некоторым успехом, но обычно не очень сильно, прежде чем он начнет выглядеть плохо.
ОГХаза
Уилл Колдервуд
ОГХаза
джуджа
Скотт
Уилл Колдервуд
Скотт
Уилл Колдервуд
DA01