Всё чаще производители внедряют в свои устройства 2K-разрешения, что требует больше ресурсов графического процессора. Особенно заметна разница в случае, если пользователь решит поиграть в игры. Сегодня мы сравним несколько игр на устройствах-конкурентах Samsung Galaxy S6, iPhone 6 и iPhone 6 Plus и попытаемся понять, в чем различия и в чем причина подобных различий.
В случае с 2K-разрешением оптимизация игры потребует улучшения в первую очередь качества текстур. Для начала давайте разберемся, что же из себя представляют текстуры. Текстура — это рисунок, который накладывается на 3D-модель. Модели, в свою очередь, созданы с помощью полигонов. Текстуры имеют как 2D-параметры (цвет и яркость), так и 3D-параметры (отражения, прозрачность и так далее). Текстуры могут накладываться на любые объекты в трехмерном пространстве. Отличным примером наложения текстуры станет вот эта бочка:
В случае с мобильными устройствами разработчики игр сталкиваются с некоторыми проблемами оптимизации. Текстуры съедают очень много оперативной памяти, что влечет за собой высокую трату ресурсов, от чего увеличивается и энергопотребление. Именно поэтому некоторые игры могут съедать заряд аккумулятора за полчаса, а некоторые продержатся и все 3-4 часа.
Для того чтобы хоть как-то оптимизировать игру, производители вынуждены чем-то жертвовать. Однако жертва должна быть мала, поэтому прибегают к различным методам сжатия текстур, которые будут наиболее оптимальны. Здесь идет прямое пересечение с аппаратным обеспечением. Каждый графический ускоритель имеет различные методы сжатия текстур (PVRTC, ASTC, ETC, ATITC и так далее). К слову, OpenGL ES 3.0 имеет сжатие ETC, тогда как ASTC является опциональным.
Использование неоптимальных методов сжатия приведет к существенному ухудшению картинки в игре.
Ниже представлено сравнение различных методов сжатия:
Интересным параметром является и разрешение. Одна и та же игра на различных платформах может иметь различное разрешение. Например, Grand Theft Auto: San Andreas на iPhone работает в стандартном разрешение, тогда как на Galaxy S6, который имеет 2K-дисплей, игра существенно уменьшает разрешение:
Графические процессоры поддерживают форматы RGB с различной точностью (RGB565, RGBA8888). В зависимости от уровня точности изменяется и качество текстур в играх. RGB565 неплохо справляется со своей задачей, однако для более качественной картинки лучше использовать RGBA8888.
Эффект растеризации RGB565 можно заметить ниже на скриншоте (справа от бочки):
Сглаживание
Немалое значение имеет и сглаживание. Отличным примером станет Asphalt 8. Посмотрите на линии электропередач и номерной знак: существенная разница между iPhone 6 Plus и Galaxy S6 не в пользу второго.
Таким образом, повышение точности, использование оптимального сжатия и сглаживания приведет к существенной трате ресурсов графического процессора. Именно поэтому использование хорошо сбалансированных графических процессоров с уникальной архитектурой позволит значительно улучшить качество графики в мобильных играх.
Остальные скриншоты сравнения:
По материалам GameBench и alexvoica